컴퓨터 시스템 자원들을 효율적으로 관리
An OS is system software that manages com
puter hardware, software resources, and provides common services for computer programs.
the core of a computer's operating system and generally has complete control over everything in the system
Process management:프로세스의 생성 및 소멸, 프로세스간의 통신 (IPC, pipe, signal), CPU 스케 줄링 동기화, 제한된 자원에서 다중 프로세서의 효율적인 관리 기법 등
Memory management:가상 메모리 관리기법, 메모리 하드웨어의 효율적인 관리
File system management:가상 파일 시스템 (VFS)에 의한 여러 파일 시스템 지원, 디스크의 물리구조에 따른 논리기법 표현, 파일 /directory 관리, block 입출력을 위한 버퍼 cache 관리
Device management:입출력 요청의 검증, 입출력 작업 scheduling, 주변장치간의 자료전송, 제어 기 관리, 인터럽트 요청 및 처리
Network management:통신 프로토콜 구현 (TCP/UDP, IP 등 ), 네트워크 routing 및 주소 지정, 네트 워크 제어기 관리, 네트워크 드라이버와 접속
ref
https://en.wikipedia.org/wiki/Kernel_%28operating_system%29
https://blog.naver.com/world5859/221418099242
일반적인 프로그램들은 사용자 모드에서 실행되므로 커널 모드에 대한 직접적인 접근이 불가능하다.
하지만 커널에 접근할 수 없으면 사용자 모드의 프로세스들이 파일을 쓰거나 불러올 수 없고 그래픽 처리와 같은 거의 모든 작업을 할 수 없다.
따라서 커널에 요청하여 커널 모드에서 처리하고 그 결과를 사용자 모드의 프로그램에게 전달하는 것이 바로 시스템 콜이다.
시스템 콜은 프로그램의 거의 모든 코드의 실행에서 발생하며 파일 생성이나 쓰기 또는 읽기, 키보드 입력, 그래픽 출력, 스레드 생성 및 제어 같은 것도 시스템 콜을 통해 커널에 요청하여 커널 모드에서 처리