KOCW - 양희재 교수님 강의를 기반으로 운영체제 정리
운영체제가 제공하는 서비스는 한 나라의 정부가 하는 역할과 비슷합니다. 컴퓨터에는 CPU, Memory, 키보드, 마우스 등 여러가지 자원이 존재하고 있습니다. 여러가지 유저 프로그램들은 이러한 자원을 필요로 하게 되고 운영체제는 적절하게 자원을 분배하여 유저 프로그램을 효율적으로 관리하게 됩니다.
프로세스 관리
주기억장치 관리
파일 관리
보조기억장치 관리
입출력장치 관리
네트워킹
보호
기타
프로세스는 메모리에서 적재되어 실행 중인 프로그램을 의미합니다. 운영체제의 프로세스 관리는 프로세스의 생성 및 소멸, 프로세스 활동 일시 정지 및 활동 재개, 프로세스간 통신(IPC), 프로세스간 동기화, 교착상태 처리를 담당합니다.
프로세스에게 메모리 공간을 할당하는 역할을 합니다. 메모리의 어느 부분이 어떤 프로세스에게 할당되었는지 추적 및 감시하고 프로세스 종료시 메모리를 회수하게 됩니다. 또한 메모리를 효과적으로 사용할 수 있도록 도와주며 일반적으로 작은 메모리 용량을 해결하기 위해 가상 메모리 기술을 활용하여 실제 메모리보다 큰 용량을 갖도록 합니다.
실제로 Track과 Sector로 구성된 디스크를 파일이라는 논리적 관점으로 다룰 수 있게 해주는 역할을 합니다. 보통 파일의 생성과 삭제, 디렉토리 생성과 삭제를 담당하고 open, close, read, write, create, delete과 같은 기본동작을 지원하게 됩니다. 또한 Track/Sector와 파일과의 매핑을 담당합니다.
하드디스크, 플래시 메모리 등을 관리하는 역할을 하며 빈 공간을 관리하고 저장공간을 할당, 디스크 스케줄링을 담당합니다.
입출력 장치를 사용하기 위한 장치 드라이브를 관리하고 입출력 장치의 성능향상을 위해 buffering, caching, spooling 기술을 활용합니다.
시스템 콜이란 일반 어플리케이션이 운영체제 서비스를 받기 위한 호출을 의미합니다. 만약 파일을 생성하려고 할때 일반 유저는 하드디스크에 직접 접근할 수 없기 때문에 시스템 콜을 발생시켜 운영체제의 서비스를 수행할 수 있습니다.