하드웨어 위에 설치되어 하드웨어 계층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층
🚨 운영체제의 역할
- 컴퓨터 시스템의 자원을 관리
- 사용자가 컴퓨터를 사용할 수 있는 환경을 제공
🚨 CPU는 컴퓨터에서 프로그램을 실행하는 데 필요한 연산을 처리하고 수행한다 ( =프로세서라고도 함)
🚨 메모리는 데이터를 저장하기 위한 기억장치로, 휘발성 메모리인 주 기억장치와 비휘발성 메모리인 보조 기억장치가 있다
- 주 기억장치(=메인 메모리) : RAM
- 보조 기억장치 : SSD, HDD
프로그램을 실행하면 운영체제가 디스크에 있는 프로그램을 메모리로 로드하는데, 메모리에 로드한 프로그램을 프로세스라고 하며 CPU가 처리한다
CPU는 하나의 프로세스만 처리할 수 있어서 멀티 프로세스 환경에서는 운영체제가 스케줄링을 통해 CPU에 프로세스를 할당함
🚨 커널은 운영체제의 핵심 요소로, 컴퓨터 하드웨어와 프로세스의 보안, 자원 관리, 하드웨어 추상화 같은 중요한 역할을 수행한다
자원 관리를 위해 CPU 스케줄링, 메모리 관리, 입출력 관리, 파일 시스템 관리 등을 담당
운영체제는 커널에서 관리하는 중요 자원에 사용자가 쉽게 접근하지 못하도록 모드를 나눈다
🚨 사용자 모드에서 실행된 프로세스가 자원에 접근하려면 시스템 콜을 호출해 커널에 요청해야 한다
커널은 시스템 콜로 받은 요청을 처리한 후 다시 시스템 콜로 결과 값 반환