CPU 스케줄링과 프로세스 관리
CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환 관리한다.메모리 괸리
한정된 메모리를 어떤 프로세스에 얼마만큼 할당해야 하는지 관리한다.디스크 파일 관리
디스크 파일을 어떤 방법으로 보관할지 관리한다.I/O 디바이스 관리
I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리한다.운영체제는 UI, 시스템콜, 커널, 드라이버로 이루어져있다.
운영체제의 핵심 부분이자 시스템콜 인터페이스를 제공해 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할을 한다.
운영체제가 커널에 접근하기 위한 인터페이스이며 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 쓴다. 유저 프로그램이 트랩(trap - 소프트웨어 인터럽트)을 발동하면 올바른 요청인지 확인한 후, 유저 모드가 시스템콜을 통해 커널 모드로 변환되어 실행된다. 이 때 modebit 이라는 플래그 변수를 이용해 유저 모드에서 파일을 읽지 않고 커널 모드로 들어가 파일을 읽고 다시 유저 모드로 돌아가 그 뒤에 있는 유저 프로그램의 로직을 수행한다. 이를 통해 컴퓨터 자원에 대한 직접적인 접근을 차단하고 프로그램을 독립적으로 유지할 수 있다.
malloc-lab에서 봤던 것 처럼 프로세스나 스레드에서 운영체제로 어떠한 요청을 할 때 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 전달이 된다.
컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어져 있다.
CPU(Central Processing Unit)는 산술논리연산장치, 제어장치, 레지스터로 구성되어있는 컴퓨터 장치를 말하며, 메모리에 존재하는 명령어를 인터럽트 에 의해 해석해서 실행한다.
I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치다. 메모리 버퍼, 포인터, 카운터를 사용하여 장치 제어기가 CPU의 도움없이 데이터를 직접 메모리로 전송할 수 있도록 한다. CPU에 들어오는 인터럽트 요청으로 인한 부하를 막아줘 시스템의 효율을 증가시켜준다.
데이터나 상태, 명령어 등을 기록하는 장치를 말하며, 보통 RAM(Random Access Memory)을 일컬어 메모리라고도 한다. CPU는 연산을 하고 동작에 필요한 모든 내용이 전원이 유지되는 내내 이 기억장치에 저장된다. 부엌에 비유하면 CPU는 요리사, 메모리는 아일랜드 식탁..? 식탁이 클수록 재료를 많이 가져다놓고 많은 일을 할 수 있듯, 메모리가 크면 많은 일을 할수있다.