[CS] 운영체제와 컴퓨터

눈치없어·2025년 5월 7일

운영체제와 CPU, 메모리 등으로 이루어진 컴퓨터 관련 내용


운영체제의 역할과 구조

운영체제의 역할

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

  • CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리

2️⃣ 메모리 관리

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

3️⃣ 디스크 파일 관리

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

4️⃣ I/O 디바이스 관리

  • I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리

운영체제 구조

GUI: 사용자 친화적인 그래픽 인터페이스
드라이버: 하드웨어를 제어하기 위한 소프트웨어
CUI: 그래픽이 아닌 명령어 기반 인터페이스


시스템콜

시스템콜은 사용자 프로그램이 운영체제의 기능을 요청할 수 있도록 하는 인터페이스

  • 유저 프로그램 → 시스템콜 → 커널 → 하드웨어
  • 예시: fs.readFile() → 파일 읽기 요청

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

앞의 그림처럼 프로세스나 스레드에서 운영체제로 어떠한 요청을 할 때 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 전달됨


modebit

현재 실행 중인 코드가 유저 모드인지 커널 모드인지 구분하는 플래그

1: 유저 모드
0: 커널 모드

모든 하드웨어 자원은 커널 모드를 통해서만 접근 가능해야 함 → 보안 및 안정성 확보


동작 흐름 예시 (카메라 요청)
유저 → 시스템콜 호출 → modebit 1 → 0 전환 → 커널에서 처리 → 다시 modebit 0 → 1 전환 → 유저로 복귀

유저 모드: 유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드
커널 모드: 모든 컴퓨터 자원에 접근할 수 있는 모드
커널: 운영체제의 핵심 부분이자 시스템콜 인터페이스를 제공하며 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O 요청 관리 등 운영체제의 중추적인 역할



컴퓨터의 요소

컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 구성되어 있으며, 각 요소는 다음과 같은 역할을 수행함


CPU

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

  • 제어장치(CU): 명령어를 해석하고 실행 순서를 제어함
  • 산술논리연산장치(ALU): 산술 연산(+, - 등)과 논리 연산(AND, OR 등)을 수행함
  • 레지스터: 연산에 사용할 데이터를 임시로 저장하는 초고속 기억장치

📌 CPU의 연산 처리

1️⃣ 제어장치가 메모리에서 데이터 로드
2️⃣ 레지스터에 전달 → ALU에서 연산 수행
3️⃣ 결과를 다시 메모리로 저장


📌 인터럽트

외부 또는 내부 이벤트가 발생했을 때 CPU의 현재 작업을 잠시 중단하고 특정 처리를 수행하는 메커니즘

종류

  • 하드웨어 인터럽트: 키보드, 마우스 등 I/O 장치로부터 발생
  • 소프트웨어 인터럽트 (트랩): 시스템콜, 예외 상황 발생 시

인터럽트 처리 함수는 인터럽트 벡터를 참조하며 우선순위에 따라 동작함

인터럽트 핸들러 함수
인터럽트가 발생했을 때 이를 핸들링하기 위한 함수. 커널 내부의 IRQ를 통해 호출되며 request_irq( )를 통해 인터럽트 핸들러 함수를 등록할 수 있음


DMA 컨트롤러

CPU의 부담을 줄이기 위한 보조 장치
I/O 장치가 CPU를 거치지 않고 메모리와 직접 데이터 전송 가능하도록 함

  • CPU 대신 데이터 복사를 수행 → CPU는 다른 연산 수행 가능
  • 동시에 작업이 겹치지 않도록 CPU와 DMA 간 조율

메모리 (RAM 중심)

데이터와 명령어를 임시로 저장하는 기억장치

  • 작업 공간에 비유되며, 공간이 클수록 여러 작업을 동시에 처리 가능
  • CPU가 직접 접근하여 데이터를 처리함

타이머

시간 기반 제어 장치

  • 특정 프로세스에 시간 제한을 걸어 무한 실행 방지
  • 운영체제가 각 프로세스에 CPU 점유 시간을 분배할 때 사용됨

디바이스 컨트롤러

각 I/O 장치에 붙은 작은 CPU 역할을 하는 제어 장치

  • 디바이스 별로 로컬 버퍼를 가짐 (데이터 임시 저장)
  • 커널은 이 컨트롤러와 통신하여 입출력 처리를 명령함



참고: 북스터디 - 면접을 위한 CS 전공지식 노트 (Chapter 3-1)

profile
dock 사이즈 다르잖아

0개의 댓글