Operating Systemmedium면접 빈도: medium

OS and Computer

운영체제와 컴퓨터

📝 운영체제의 역할

1. CPU 스케줄링과 프로세스 관리

CPU 소유권을 어떤 프로세스에 할당할지 결정

프로세스 생성, 삭제, 자원 할당 및 반환 관리

스케줄링 알고리즘: FIFO, SJF, Round Robin, Priority Scheduling 등


2. 메모리 관리

한정된 메모리를 어떤 프로세스에 얼마큼 할당할지 관리


3. 디스크 파일 관리

디스크 파일을 어떤 방법으로 보관할지 관리

파일 생성, 수정, 제거, 공유, 백업, 복구

주기억장치와 보조기억장치 간 파일 전송


4. I/O 디바이스 관리

마우스, 키보드 등 I/O 디바이스와 컴퓨터 간 데이터 송수신 관리


🏗️ 운영체제 구조

GUI (Graphical User Interface)

CUI (Command User Interface)

System Call

Kernel

Hardware


🔧 System Call (시스템 콜)

운영체제가 커널에 접근하기 위한 인터페이스

유저 프로그램이 OS 서비스를 받기 위해 커널 함수 호출


동작 과정

1. 유저 프로그램이 I/O 요청으로 트랩 발동

2. 올바른 I/O 요청인지 확인

3. 유저 모드 → 커널 모드로 변환하여 실행


장점

추상화 계층

컴퓨터 자원 직접 접근 차단

프로그램을 다른 프로그램으로부터 보호

낮은 단계 영역 처리를 신경 쓰지 않고 구현 가능


🔐 Mode Bit

0 또는 1의 값을 가지는 플래그

유저 모드와 커널 모드 구분


Mode Bit 값

0: 커널 모드

1: 유저 모드


유저 모드

유저가 접근할 수 있는 영역 제한

컴퓨터 자원에 함부로 침범 못함


커널 모드

모든 컴퓨터 자원에 접근 가능


커널 (Kernel)

운영체제의 핵심 부분

시스템 콜 인터페이스 제공

보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리


💻 컴퓨터의 요소

CPU (Central Processing Unit)

산술논리연산장치, 제어장치, 레지스터로 구성

인터럽트에 의해 메모리의 명령어 해석 및 실행


제어장치 (CU, Control Unit)

프로세스 조작 지시

입출력장치 간 통신 제어

명령어 읽고 해석

데이터 처리 순서 결정


레지스터 (Register)

CPU 안의 임시 기억장치

CPU와 직접 연결

연산 속도가 메모리보다 수십~수백 배 빠름

저장 계층: SSD/HDD → RAM → Cache → Register


산술논리연산장치 (ALU)

산술 연산과 논리 연산 계산

덧셈, 뺄셈, 배타적 논리합, 논리곱 등


CPU 연산 처리 과정

1. 제어장치가 메모리에 계산할 값 로드

2. 제어장치가 레지스터 값을 ALU에 계산 명령

3. 제어장치가 계산된 값을 레지스터에서 메모리로 저장


인터럽트 (Interrupt)

신호가 들어왔을 때 CPU를 잠깐 정지

키보드, 마우스 등 I/O 디바이스, 산술 연산 오류, 프로세스 오류 등


인터럽트 처리 과정

1. 인터럽트 발생

2. 현재 컴퓨터 상태 저장

3. 인터럽트 서비스 루틴 처리

4. 이전 작업 상태 복구 및 재개


하드웨어 인터럽트

인터럽트 라인 설계 후 순차적 실행 중지

OS에 시스템 콜 요청

디바이스의 로컬 버퍼 접근하여 작업 수행


소프트웨어 인터럽트 (Trap)

프로세스 오류 등으로 시스템 콜 호출 시 발동


DMA 컨트롤러

I/O 디바이스가 메모리에 직접 접근 가능하게 하는 하드웨어

CPU 부하 감소

CPU와 DMA 컨트롤러의 동시 작업 방지


메모리

데이터, 상태, 명령어 등을 기록하는 장치

RAM

CPU는 계산, 메모리는 기억 담당


타이머

특정 프로그램에 시간 제한

시간이 많이 걸리는 프로그램 제한


디바이스 컨트롤러

컴퓨터와 연결된 I/O 디바이스들의 작은 CPU


❓ 면접 질문 예시

Q1. 운영체제의 주요 역할은?

답변: 운영체제의 주요 역할은 네 가지입니다. 첫째, CPU 스케줄링과 프로세스 관리로 CPU 소유권을 어떤 프로세스에 할당할지 결정하고 프로세스를 관리합니다. 둘째, 메모리 관리로 한정된 메모리를 어떤 프로세스에 얼마큼 할당할지 관리합니다. 셋째, 디스크 파일 관리로 파일 생성, 수정, 제거 등을 관리합니다. 넷째, I/O 디바이스 관리로 디바이스와 컴퓨터 간 데이터 송수신을 관리합니다.

Q2. 시스템 콜이란 무엇인가요?

답변: 시스템 콜은 운영체제가 커널에 접근하기 위한 인터페이스입니다. 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용합니다. 유저 프로그램이 I/O 요청으로 트랩을 발동하면 올바른 I/O 요청인지 확인한 후 유저 모드가 시스템 콜을 통해 커널 모드로 변환되어 실행됩니다.

Q3. Mode Bit의 역할은?

답변: Mode Bit은 0 또는 1의 값을 가지는 플래그로 유저 모드와 커널 모드를 구분하는 데 사용됩니다. 0은 커널 모드로 모든 컴퓨터 자원에 접근할 수 있고, 1은 유저 모드로 유저가 접근할 수 있는 영역을 제한적으로 두어 컴퓨터 자원에 함부로 침범하지 못하게 합니다.

Q4. CPU의 구성 요소는?

답변: CPU는 산술논리연산장치(ALU), 제어장치(CU), 레지스터로 구성됩니다. 제어장치는 프로세스 조작을 지시하고 명령어를 읽고 해석합니다. 레지스터는 CPU 안의 임시 기억장치로 연산 속도가 메모리보다 매우 빠릅니다. 산술논리연산장치는 산술 연산과 논리 연산을 계산합니다.

Q5. 인터럽트란 무엇이고 처리 과정은?

답변: 인터럽트는 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것입니다. 키보드, 마우스 등 I/O 디바이스, 산술 연산 오류, 프로세스 오류 등으로 발생합니다. 처리 과정은 인터럽트 발생 시 현재 컴퓨터 상태를 저장하고, 인터럽트 서비스 루틴을 처리한 후, 이전 작업 상태를 복구하고 재개합니다.


📚 원본 참고 자료

출처: 2023-CS-Study

추가 학습 자료