운영체제는 컴퓨터의 성능을 높이고, 사용자에게 편의성을 제공하는 목적으로 하는 컴퓨터 하드웨어를 관리하는 프로그램
하드웨어를 관리하고 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 응용프로그램과 하드웨어 간의 인터페이스로서 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해줌
즉, 운영 체제는 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어이다.
ex) Windows, Linux, UNIX, MS-DOS 등
프로세서가 직접 주소로 지정할 수 있는 유일한 메모리로, 운영체제는 다음과 같은 기능을 수행하여 메인 메모리를 관리함
메인 메모리는 공간이 제한되어 있어 모든 데이터와 프로그램을 계속 저장할 수 없어 보조기억장치 이용
운영체제는 다음과 같이 보조기억장치를 관리함
하나의 프로세스는 프로세서, 메모리, 파일, 입출력 장치와 같은 자원이 있어야 업무를 수행할 수 있는데, 자원은 프로세스를 생성할 때 제공하거나 실행 중에 할당 가능
운영체제는 다음과 같이 프로세스를 관리
운영체제는 특수 프로그램인 장치 드라이브를 사용하여 입출력장치와 상호작용함. 장치 드라이버는 특정 하드웨어 장치와 통신할 수 있는 인터페이스를 제공하므로 특정 하드웨어에 종속된 프로그램임
다음과 같이 주변장치 관리
입출력 파일의 위치, 저장과 검색관리를 의미함. 컴퓨터 시스템은 물리적으로 다양한 형태로 파일을 저장할 수 있는데, 운영체제는 데이터를 효율적으로 사용할 수 있도록 단일화된 저장 형태를 제공함. 운영체제는 파일을 쉽게 사용하기 위해 디렉터리로 보통 구성하며, 다수의 사용자가 여기에 접근하려 할 때 이 접근을 제어함.
다음과 같이 파일을 관리
운영체제는 파일 사용 권한 부여, 데이터 암호화 등 서비스를 제공하여 데이터와 시스템을 보안함. 여러 프로세스 동시 실행이 가능하므로 서로 보호해야함
프로세서는 다양한 방법으로 구성된 네트워크를 이용하여 완전 접속과 부분 접속 방법으로 연결함. 연결된 프로세서가 통신을 할 때는 경로 설정, 접속 정책, 충돌, 보안 등 문제를 고려해야하는데 이를 운영체제가 관리
명령 해석기는 운영체제에서 중요한 시스템 프로그램임. 또한, 사용자나 프로그램에서 대화형으로 입력한 명령어를 이해하고 실행하는 사용자와 운영체제의 인터페이스임. 사용자가 입력한 명령은 제어문으로 운영체제에 전달되는데, 이 전달을 명령해석기가 담당함. 이때, 명령 해석기는 운영체제의 일부로서 운영체제와 긴밀한 관련이 있지만, 운영체제 자체가 아닌 개별적인 구성 요소임.
커널(시스템콜, 드라이버)/인터페이스로 이루어짐
운영체제는 커널과 인터페이스를 분리하여 같은 커널을 사용하더라고 다른 인터페이스를 가질 수 있음
사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할
자동차의 엔진과 같이 프로세스 관리, 메모리 관리, 저장장치 관리 등의 운영체제 핵심적 기능을 모아놓은 것으로 운영체제의 성능을 좌우함.
하는일 5가지
프로세스 관리/메모리 관리/파일시스템 관리/입출력 관리/프로세스 간 통신 관리
커널이 자신을 보호하기 위해 만든 인터페이스. 사용자나 응용프로그램이 컴퓨터 자원을 사용하기 위해서는 시스템 콜 사용해야함. 보통은 함수의 형태로 제공됨
ex) printf(), write()
시스템 호출을 사용한다면 요청만 하고 결과만 기다리면 되므로 컴퓨터의 시스템이 파괴되는 일을 막을 수 있음
커널과 하드뤠어의 인터페이스를 담당. 여러 하드웨어에 맞는 인터페이스를 운영체제가 개발하기는 어려우므로 하드웨어 제작자가 만든 소프트웨어를 받아서 하드웨어를 사용할 수 있게 함