[OS] 운영체제란?

foresec·2023년 7월 10일
0

Computer Science

목록 보기
16/28

운영 체제(OS, Operating System)

운영체제는 컴퓨터의 성능을 높이고, 사용자에게 편의성을 제공하는 목적으로 하는 컴퓨터 하드웨어를 관리하는 프로그램

하드웨어를 관리하고 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 응용프로그램과 하드웨어 간의 인터페이스로서 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해줌

즉, 운영 체제는 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어이다.
ex) Windows, Linux, UNIX, MS-DOS 등

운영체제의 기능

  1. 자원관리(메모리관리/프로세스 관리/주변장치관리/파일(데이터)관리)
  2. 시스템 관리(시스템 보호/네트워킹/명령 해석기)

1. 자원 관리

1-1. 메모리 관리

메인 메모리 관리

프로세서가 직접 주소로 지정할 수 있는 유일한 메모리로, 운영체제는 다음과 같은 기능을 수행하여 메인 메모리를 관리함

  • 메모리의 어느 부분을 사용하고, 누가 사용하는지 점검
  • 메모리에 저장할 프로세스를 결정
  • 메모리를 할당/회수하는 방법 결정
보조기억장치 관리

메인 메모리는 공간이 제한되어 있어 모든 데이터와 프로그램을 계속 저장할 수 없어 보조기억장치 이용
운영체제는 다음과 같이 보조기억장치를 관리함

  • 빈 여유 공간을 관리
  • 새로운 파일 작성 시 저장 장소 할당
  • 메모리 접근 요청을 스케줄링
  • 파일 생성/삭제

1-2. 프로세스 관리

하나의 프로세스는 프로세서, 메모리, 파일, 입출력 장치와 같은 자원이 있어야 업무를 수행할 수 있는데, 자원은 프로세스를 생성할 때 제공하거나 실행 중에 할당 가능
운영체제는 다음과 같이 프로세스를 관리

  • 프로세스와 스레드 스케줄링
  • 사용자 프로세스와 시스템 프로세스를 생성/제거
  • 프로세스 중지 및 재수행
  • 프로세스 동기화 방법 제공
  • 프로세스 통신 방법 제공
  • 교착 상태(deadlock)을 방지하는 방법 제공

1-3. 주변 장치 관리

운영체제는 특수 프로그램인 장치 드라이브를 사용하여 입출력장치와 상호작용함. 장치 드라이버는 특정 하드웨어 장치와 통신할 수 있는 인터페이스를 제공하므로 특정 하드웨어에 종속된 프로그램임
다음과 같이 주변장치 관리

  • 임시저장 시스템 기능 제공
  • 일반 장치용 드라이버 인터페이스 제공
  • 특정 장치 드라이버 제공

1-4. 파일(데이터) 관리

입출력 파일의 위치, 저장과 검색관리를 의미함. 컴퓨터 시스템은 물리적으로 다양한 형태로 파일을 저장할 수 있는데, 운영체제는 데이터를 효율적으로 사용할 수 있도록 단일화된 저장 형태를 제공함. 운영체제는 파일을 쉽게 사용하기 위해 디렉터리로 보통 구성하며, 다수의 사용자가 여기에 접근하려 할 때 이 접근을 제어함.

다음과 같이 파일을 관리

  • 파일 생성/삭제
  • 디렉터리 생성/삭제
  • 보조기억장치의 파일 맵핑
  • 안전한(비휘발성)저장장치에 파일 저장

2. 시스템 관리

2-1. 시스템 보호(사용자 권한 부여)

운영체제는 파일 사용 권한 부여, 데이터 암호화 등 서비스를 제공하여 데이터와 시스템을 보안함. 여러 프로세스 동시 실행이 가능하므로 서로 보호해야함

2-2. 네트워킹(통신)

프로세서는 다양한 방법으로 구성된 네트워크를 이용하여 완전 접속과 부분 접속 방법으로 연결함. 연결된 프로세서가 통신을 할 때는 경로 설정, 접속 정책, 충돌, 보안 등 문제를 고려해야하는데 이를 운영체제가 관리

2-3. 명령 해석기

명령 해석기는 운영체제에서 중요한 시스템 프로그램임. 또한, 사용자나 프로그램에서 대화형으로 입력한 명령어를 이해하고 실행하는 사용자와 운영체제의 인터페이스임. 사용자가 입력한 명령은 제어문으로 운영체제에 전달되는데, 이 전달을 명령해석기가 담당함. 이때, 명령 해석기는 운영체제의 일부로서 운영체제와 긴밀한 관련이 있지만, 운영체제 자체가 아닌 개별적인 구성 요소임.

운영체제 구조

커널(시스템콜, 드라이버)/인터페이스로 이루어짐

운영체제는 커널과 인터페이스를 분리하여 같은 커널을 사용하더라고 다른 인터페이스를 가질 수 있음

인터페이스

사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할

커널

자동차의 엔진과 같이 프로세스 관리, 메모리 관리, 저장장치 관리 등의 운영체제 핵심적 기능을 모아놓은 것으로 운영체제의 성능을 좌우함.

하는일 5가지
프로세스 관리/메모리 관리/파일시스템 관리/입출력 관리/프로세스 간 통신 관리

시스템 콜

커널이 자신을 보호하기 위해 만든 인터페이스. 사용자나 응용프로그램이 컴퓨터 자원을 사용하기 위해서는 시스템 콜 사용해야함. 보통은 함수의 형태로 제공됨
ex) printf(), write()

시스템 호출을 사용한다면 요청만 하고 결과만 기다리면 되므로 컴퓨터의 시스템이 파괴되는 일을 막을 수 있음

드라이버

커널과 하드뤠어의 인터페이스를 담당. 여러 하드웨어에 맞는 인터페이스를 운영체제가 개발하기는 어려우므로 하드웨어 제작자가 만든 소프트웨어를 받아서 하드웨어를 사용할 수 있게 함


참고
https://ardor-dev.tistory.com/22

profile
왼쪽 태그보다 시리즈 위주로 구분

0개의 댓글