운영체제의 역할과 구조
운영체제의 역할
CPU 스케줄링과 프로세스 관리
- CPU 소유권을 어떤 프로세스에 할당할 것인지
- 프로세스의 생성과 삭제
- 자원 할당 및 반환 관리
메모리관리
- 한정된 메모리를 어떤 프로세스에 얼만큼 할당하는지 관리
디스크 파일 관리
- 디스크 파일을 어떠한 방법으로 보관할지 관리
Input / Output 디바이스 관리
- 마우스, 키보드와 컴퓨터 간의 데이터를 주고받는 것을 관리
운영체제의 구조
- GUI : 사용자가 전자장치와 상화 작용할 수 있도록 하는 UI(User Interface)의 한 형태
- CUI : 그래픽이 아닌 명령어로 처리하는 인터페이스
시스템콜
- 운영체제가 커널에 접근하기 위한 인터페이스
- 유저 프로그램이 운영체제의 서비스를 받기 위해 Kernel 함수를 호출할 때 쓰임
- 파일시스템 접근, 네트워크 통신, 메모리 관리, 프로세스 관리 등
하드웨어 자원에 접근해서 작업을 수행할 때
시스템 콜을 호출 - 운영체제의 자원과 기능은 시스템 콜을 통해서만 제공
- 실행 순서 : 유저 프로그램에서 fs.readfile() 함수가 실행 => 유저 모드에서 커널모드로 전환 => 파일 시스템 Read => 커널 모드에서 유저 모드로 전환 => 유저 프로그램 실행
- 프로세스나 스레드에서 운영체제로 어떠한 요청을 할 때 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 전달
- 시스템콜은 하나의 추상화 계층
modebit
- 시스템콜이 작동될 때
modebit
을 참고하여 유저 / 커널 모드를 구분 -
1 - 디바이스는 운영체제를 통해서만 작동 해야함
카메라를 작동하는 프로그램을 실행할 때, 유저모드를 기반으로 카메라가 켜진다면, 사용자가 의도하지 않은 공격자가 카메라를 켤 수 있는 행위를 하기가 쉬움
유저모드
- 유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드
커널모드
- 모든 컴퓨터 자원에 접근할 수 있는 모드
커널 (kernel)
- 하드웨어와 응용 프로그램 간의 상호작용을 관리
- 프로세스, 메모리, 입출력(I/O), 파일 시스템 관리 등
- 시스템의 최상위 권한을 가지며, 하드웨어에 직접 접근