운영체제와 CPU, 메모리 등으로 이루어진 컴퓨터 관련 내용
1️⃣ CPU 스케줄링과 프로세스 관리
2️⃣ 메모리 관리
3️⃣ 디스크 파일 관리
4️⃣ I/O 디바이스 관리

GUI: 사용자 친화적인 그래픽 인터페이스
드라이버: 하드웨어를 제어하기 위한 소프트웨어
CUI: 그래픽이 아닌 명령어 기반 인터페이스
시스템콜은 사용자 프로그램이 운영체제의 기능을 요청할 수 있도록 하는 인터페이스

I/O 요청: 입출력 함수, 데이터베이스, 네트워크, 파일 접근 등에 관한 일
드라이버: 하드웨어를 제어하기 위한 소프트웨어

앞의 그림처럼 프로세스나 스레드에서 운영체제로 어떠한 요청을 할 때 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 전달됨
현재 실행 중인 코드가 유저 모드인지 커널 모드인지 구분하는 플래그
1: 유저 모드
0: 커널 모드
모든 하드웨어 자원은 커널 모드를 통해서만 접근 가능해야 함 → 보안 및 안정성 확보
동작 흐름 예시 (카메라 요청)
유저 → 시스템콜 호출 → modebit 1 → 0 전환 → 커널에서 처리 → 다시 modebit 0 → 1 전환 → 유저로 복귀

유저 모드: 유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드
커널 모드: 모든 컴퓨터 자원에 접근할 수 있는 모드
커널: 운영체제의 핵심 부분이자 시스템콜 인터페이스를 제공하며 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할
컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 구성되어 있으며, 각 요소는 다음과 같은 역할을 수행함

컴퓨터의 핵심 연산 장치로, 제어장치(CU), 산술논리연산장치(ALU), 레지스터로 구성되어 있음

1️⃣ 제어장치가 메모리에서 데이터 로드
2️⃣ 레지스터에 전달 → ALU에서 연산 수행
3️⃣ 결과를 다시 메모리로 저장
외부 또는 내부 이벤트가 발생했을 때 CPU의 현재 작업을 잠시 중단하고 특정 처리를 수행하는 메커니즘
종류
인터럽트 처리 함수는 인터럽트 벡터를 참조하며 우선순위에 따라 동작함
인터럽트 핸들러 함수
인터럽트가 발생했을 때 이를 핸들링하기 위한 함수. 커널 내부의 IRQ를 통해 호출되며 request_irq( )를 통해 인터럽트 핸들러 함수를 등록할 수 있음
CPU의 부담을 줄이기 위한 보조 장치
I/O 장치가 CPU를 거치지 않고 메모리와 직접 데이터 전송 가능하도록 함
데이터와 명령어를 임시로 저장하는 기억장치
시간 기반 제어 장치
각 I/O 장치에 붙은 작은 CPU 역할을 하는 제어 장치
참고: 북스터디 - 면접을 위한 CS 전공지식 노트 (Chapter 3-1)