운영체제는 응용프로그램을 관리한다.
현재 CPU를 어느 프로세스에 할당할지 결정하고(스케줄링 기능), 프로세스의 생성 및 삭제, 프로세스간 공유 자원 접근과 통신을 관리한다.
💡키워드
- 프로세스, 스레드
- CPU 스케줄링
- 동기화
- IPC
💡키워드
- 메모리 관리
- 가상 메모리
- 파일 시스템
💡키워드
- TCP/IP
한 컴퓨터를 여러사람이 사용하는 경우에 각 계정을 관리할 수 있는 기능이 필요하다.
=> 개인파일이나, 시스템 자원에 접근 권한을 지정할 수 있도록 지원한다.
💡키워드
- 계정 관리
- 접근권한 관리
마우스, 키보드 등 I/O 장치와 컴퓨터 간에 데이터를 주고 받는 것을 관리
유저프로그램
GUI
시스템콜
커널
드라이버 => 해당 그림에서는 이렇게 4가지를 운영체제라고 지칭한다.
하드웨어
프로세스나 스레드 -> 시스템콜 -> 커널 -> OS
Kernal: OS의 기본 알고리즘들을 구현해둔 로직이다.
시스템콜: OS가 커널에 접근하기 위한 인터페이스. 유저 프로그램이 운영체제의 서비스를 받기위해 커널함수 호출시 사용한다.
커널모드로만 운영체제의 자원을 이용할수있게함
(커널 모드에서는 운영체제가 전체 시스템을 관리하고 필요한 작업을 수행할 수 있는 권한을 가지므로)
=> 시스템의 안정성, 보안향상
🤔 OS가 I/O 요청을 위한 트랩 발동시켰을때의 과정??
e.g. VSCode에서 특정파일을 불러오려고 할때??