[1] 운영체제란?
운영체제는 사용자와 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어다.
한정된 메모리나 시스템 자원을 효율적으로 관리함으로써 사용자가 컴퓨터를 쉽게 다룰 수 있게 해준다.
[2] 운영체제의 역할
운영체제의 대표적인 역할은 네 가지가 있다.
- CPU 스케줄링과 프로세스 관리
CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원할당 및 반환을 관리한다. - 메모리 관리
어떤 프로세스에 얼만큼 메모리를 할당할지 관리한다. - 디스크 파일 관리
디스크 파일을 어떤 방법으로 보관할지 관리한다. - I/O 디바이스 관리
IO 디바이스들 간에 데이터를 주고받는 것을 관리한다.
[3] 운영체제 구조
GUI
사용자가 하드웨어와 상호작용할 수 있도록 해주는 사용자 인터페이스의 일종이다.
EX) 명령어 창이 아닌 프로그램 아이콘을 더블 클릭하여 컴퓨터와 상호작용
시스템콜
운영체제가 커널에 접근하기 위한 인터페이스이다.
유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용된다.
- 작동방식
시스템콜은 유저모드와 커널모드를 전환하면서 운영체제에 대한 요청을 처리해준다.
modebit을 참고해서 유저모드와 커널모드를 구분해준다. modebit는 0 또는 1 값을 가지는 플래그 변수이다.
0은 커널 모드, 1은 유저모드라고 생각하면 쉽다.
시스템콜이 요청을 처리하는 흐름은 다음과 같다.
1. 유저 프로그램이 운영체제로 어떤 요청을 한다.
2. 시스템콜이 호출되면서, modebit을 0 -> 1로 변경하여 커널모드로 전환한다.
3. 컴퓨터 자원을 이용한 로직을 수행한다.
4. modebit을 1 -> 0으로 변경하여 유저모드로 전환한다. 이후 기존의 로직을 이어서 수행한다.
* 용어
유저모드: 유저가 접근할 수 있는 영역을 제한하여 컴퓨터 자원에 함부러 접근하지 못하게 하는 모드
커널모드: 모든 컴퓨터 자원에 접근할 수 있는 모드
커널: 시스템콜 인터페이스를 제공하며 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O요청 관리 등 운영체제의 중추적인 역할을 한다.
드라이버: 하드웨어를 제어하기 위한 소프트웨어
| References
면접을 위한 CS 전공지식 노트
'CS > OS' 카테고리의 다른 글
[CPU 스케줄링 알고리즘] (0) | 2023.01.18 |
---|---|
[프로세스 구조와 프로세스 통신] (0) | 2023.01.11 |
[메모리 관리] (0) | 2023.01.10 |