취준/CS 정리

면접을 위한 CS 전공지식 노트 정리 - 3.1 운영체제와 컴퓨터

린구 2024. 7. 9. 16:33
반응형

📌 3.1.1 운영체제의 역할과 구조

운영체제의 역할

1) CPU 스케줄링과 프로세스 관리: CPU 소유권 할당 및 프로세스 관리

2) 메모리 관리: 메모리 할당

3) 디스크 파일 관리

4) I/O 디바이스 관리: 마우스, 키보드와 컴퓨터 간 주고받는 데이터 관리

-> 관리를 열심히 하는군 ㅋㅋ

 

운영체제의 구조

 

유저 프로그램이 맨 위, 가장 밑에 하드웨어

여기서 `GUI`, `시스템콜`, `커널`, `드라이버`가 운영체제

(리눅스는 GUI 없이 CUI만 있음)

`드라이버`: 하드웨어를 제어하기 위한 소프트웨어

 

시스템콜

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

`커널`: 하드웨어와 소프트웨어 간의 상호작용을 관리하고 시스템 `자원`을 효율적으로 분배

- 유저 프로그램이 `운영체제의 서비스를 받기 위해 커널 함수 호출` 시 사용

- 요청이 오면 올바른 요청인지 확인 후 유저 모드가 시스템콜을 통해 `커널 모드`로 변환되어 실행

(`커널 모드`: 모든 컴퓨터 자원에 접근할 수 있는 모드)

-> 컴퓨터 자원에 대한 직접 접근 차단하여 프로그램 보호

- 하나의 `추상화 계층`으로 낮은 단계 영역 처리에 대한 부분을 많이 신경쓰지 않아도 됨

 

`modebit`

- 시스템콜 작동 시에 참고하여 유저 모드와 커널 모드 구분 

- 1/0 값을 가지는 플래그 변수 (서로 바꿔가며 유저 모드, 커널 모드 변환)

- I/O 디바이스는 운영체제를 통해서만 작동해야 함 (그래야 악의적인 요청을 막기 쉬움)

 

📌 3.1.2 컴퓨터의 요소

- 컴퓨터는 `CPU`, `DMA 컨트롤러`, `메모리`, `타이머`, `디바이스 컨트롤러`로 이루어짐

CPU

- `산술논리연산장치`, `제어장치`, `레지스터`로 구성된 컴퓨터 장치

- `인터럽트`에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행

`인터럽트`: 신호가 들어왔을 때 잠시 CPU를 정지시키는 것

- 관리자인 커널이 프로그램을 메모리에 올려 프로세스로 만들면 CPU가 이를 처리

제어장치

- `프로세스 조작`을 지시

- 입출력 간 통신을 제어하고 명령어를 읽고 해석하며 데이터 처리를 위한 순서 결정

레지스터

- 매우 빠른 `임시기억장치`

- CPU와 직접 연결되며 연산 속도가 메모리보다 수십~수백 배 빠름

- CPU는 자체적으로 데이터를 저장할 수 없어 레지스터를 거쳐 데이터 전달

산술논리연산장치

- 두 숫자의 산술 연산과 배타적 논리합, 논리곱 같은 논리 연산을 계산

- 디지털 회로!!!

 

`CPU의 연산 처리`

1) 제어장치가 메모리에 값 로드 (레지스터에도 로드)

2) 제어장치가 값 계산을 산술논리연산장치에 명령

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

레지스터에 값을 올려서 연산하고 다시 메모리에 저장하는구나~

 

인터럽트

- 어떤 신호가 들어왔을 때 `CPU를 잠깐 정지`시키는 것

ex) IO 디바이스로 인해 / 0으로 숫자를 나누는 산술 연산 / 프로세스 오류 등으로 발생

- 발생하면 인터럽트 핸들러 함수가 모여 있는 인터럽트 벡터로 가서 `인터럽트 핸들러 함수` 실행

- 우선순위에 따라 실행

- 하드웨어 인터럽트 / 소프트웨어 인터럽트 두 가지로 나뉨

 

하드웨어 인터럽트

- IO 디바이스에서 발생하는 인터럽트

 

소프트웨어 인터럽트

- `트랩`이라고도 함

- 프로세스 오류 등으로 프로세스가 시스템콜을 호출할 때 발동

 

DMA 컨트롤러

- `I/O 디바이스가 메모리에 직접 접근`할 수 있도록 하는 하드웨어 장치

- CPU 부하를 막아주는 `보조 일꾼`

- 하나의 작업을 CPU와 DMA 컨트롤러가 동시에 하는 것을 방지

 

메모리

- 전자회로에서 데이터, 상태, 명령어 등을 기록하는 장치

- RAM (random access memory)

- `기억`을 담당

- 크면 클수록 동시에 많은 일을 할 수 있음

 

타이머

- 특정 프로그램에 시간 제한을 다는 역할

 

디바이스 컨트롤러

- 컴퓨터와 연결된 IO 디바이스들의 작은 CPU

 

 

📌 요약

`운영체제의 역할`

  1. CPU 스케줄링과 프로세스 관리: CPU 소유권 할당 및 프로세스 관리
  2. 메모리 관리: 메모리 할당
  3. 디스크 파일 관리: 파일 저장 및 접근 관리
  4. I/O 디바이스 관리: 마우스, 키보드 등 I/O 장치와의 데이터 통신 관리

`운영체제의 구조`

  • 유저 프로그램 (맨 위)
  • GUI, 시스템콜, 커널, 드라이버 (운영체제)
  • 하드웨어 (맨 아래)

`커널` 하드웨어와 소프트웨어 간의 상호작용을 관리하고 시스템 자원을 효율적으로 분배하는 운영체제의 핵심 구성 요소.

`시스템콜`  유저 프로그램이 운영체제의 서비스를 받기 위해 커널에 접근하는 인터페이스.

`모드비트`  유저 모드와 커널 모드를 구분하는 플래그 변수, I/O 디바이스는 운영체제를 통해서만 작동해야 함.

 

`컴퓨터의 요소`

  • CPU: 산술논리연산장치, 제어장치, 레지스터로 구성된 장치.
    • 제어장치: 프로세스 조작 지시, 입출력 간 통신 제어.
    • 레지스터: 매우 빠른 임시 기억장치.
    • 산술논리연산장치: 산술 및 논리 연산을 처리.
  • 인터럽트: CPU를 잠시 정지시키는 신호, 하드웨어 인터럽트와 소프트웨어 인터럽트(트랩)로 구분.
  • DMA 컨트롤러: I/O 디바이스가 메모리에 직접 접근할 수 있게 하는 장치, CPU 부하 감소.
  • 메모리: RAM을 포함, 데이터를 기록하고 기억하는 장치.
  • 타이머: 프로그램에 시간 제한을 부여.
  • 디바이스 컨트롤러: I/O 디바이스와 컴퓨터 간의 통신을 제어하는 작은 CPU.

`주요 포인트`

  • 운영체제는 CPU, 메모리, 디스크 파일, I/O 디바이스를 관리.
  • 커널은 하드웨어와 소프트웨어 간의 상호작용을 관리.
  • 시스템콜은 유저 프로그램이 커널에 접근하는 방법.
  • 모드비트는 유저 모드와 커널 모드 변환을 관리.

 

 

반응형