운영체제와 컴퓨터

운영체제와 컴퓨터

2025. 8. 1. 22:49Data Analysis/Computer Science

TIL (Today I Learn)을 기록하는 것이 목적이기 때문에,

두서 없을 수 있음을 미리 밝히고, 양해를 구합니다.

 

 


운영체제와 컴퓨터

컴퓨터 = 하드웨어, 소프트웨어를 관리하는 OS, CPU, Memory 등으로 구성

운영체제(OS) = 사용자가 필요로 하는 프로그램의 실행을 위한 시스템 소프트웨어 중 하나

 

최근에는 대부분의 시스템 소프트웨어가 운영체제에 포함되어, 같은 의미로 사용됨

운영체제 구조

 

운영체제는 쉽게 Window, Linux, Mac OS 등으로 대표할 수 있다.

 

즉, 컴퓨터 하드웨어 관리와 UI를 담당하는 프로그램으로, 컴퓨터의 성능을 효율적으로 운영 및 관리 감독하며,

각종 자원들(CPU, Memory 등)을 효율적으로 관리한다 → 사용자에게 최대의 편의성 제공

 

 

운영체제의 역할과 구조

OS의 역할

1. 하드웨어 자원 스케줄링 (프로세서, 기억장치, I/O 장치 등)

2. Memory 관리

3. I/O에 대한 보조 기능 제공

→ 사용자 응용 프로그램이 키보드, 프린터 등과의 통신을 할 수 있도록 지원

 

4. 사용자와 시스템 간의 편리한 인터페이스 제공 (터미널 환경(CLI), GUI)

GUI :
사용자가 전자장치와 Interface 할 수 있도록 하는 UI
ex) 아이콘을 마우스로 클릭

 

5. 파일, 데이터 관리 및 자원의 공유 기능 제공

→ 파일 생성/삭제/변경/유지 등 관리

 

6. 시스템 오류를 검사 및 복구시키고, 자원을 보호하는 기능 제공

7. 컴퓨터 네트워크 관리 및 네트워크 프로토콜을 지원해 컴퓨터 간 통신 제어

드라이버: 하드웨어를 제어하기 위한 SW
CUI: 그래픽이 아닌 명령어로 처리하는 인터페이스

 

시스템콜

운영체제(OS)가 kernel에 접근하기 위한 Interface이며,

유저 프로그램이 OS의 서비스를 받기 위해 kernel 함수를 호출할 때 사용한다.

사용자 App이 하드웨어 자원에 직접 접근하거나 커널의 기능을 이용하게 하는 유일한 통로


네트워크 통신이나 DB와 같은 Low 단계의 영역 처리에 대한 부분을 많이 신경 쓰지 않고 프로그램 구현 가능하다.

 

유저 모드에서의 I/O 요청

일반적인 App(워드, 브라우저 등)은 ‘User Mode’에서 실행됨

→ 시스템의 안정성과 보안을 위해 하드웨어에 직접 접근하는 것을 제한함

ex) 사용자가 파일을 저장하려 할 때, App은 디스크 드라이브에 직접 데이터를 쓰지 못하고, OS에 요청

 

트랩(Trap) 발동

App이 파일 저장과 같은 I/O 작업을 수행하기 위해 OS에 도움을 요청하는 행위 = 시스템콜

시스템콜이 호출되면, CPU는 트랩(Trap)이라는 특별한 신호 발생시킴

→ 현재 실행 중인 프로그램의 흐름을 중단시키고, CPU 제어권을 OS(kernel)로 넘기는 역할

→ ‘SW Interrupt’, 의도적으로 kernel의 특정 루틴을 호출하기 위해 사용

 

올바른 I/O 요청 확인

유저 프로그램이 I/O 요청으로 트랩(trap)을 발동하면 kernel은 올바른 I/O 요청인지 확인

  • 매개변수 검사: 파일 경로가 유효한지, 쓰기 권한이 있는지 등
  • 권한 검사

 

유저 모드에서 커널 모드로의 변환 및 실행

올바른 I/O 요청으로 확인되면, CPU 실행 모드 = User Mode → Kernel Mode 전환

  • Kernel Mode: 모든 하드웨어 자원 접근 가능
  • 변환의 의미: 이제 OS(Kernel)은 유저 App을 대신해 디스크 드라이버를 직접 제어, 실제 작업 수행

 

modebit

시스템콜이 작동될 때 modebit을 참고해서 유저 모드와 커널 모드 구분

Flag Variable

  • 1 → 유저 모드
  • 0 → 커널 모드

modebit의 역할

 

유저 프로그램이 카메라를 이용하려고 할 때 시스템콜을 호출하고,

modebit을 1에서 0으로 바꾸며 커널 모드로 변경한 후 카메라 자원을 이용한 로직 수행

 

 

컴퓨터의 요소

 

CPU (Central Processing Unit)

ALU, Control Unit, Register로 구성

 

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

→ 운영체제의 Kernel이 프로그램을 메모리에 올려 프로세스로 만들면 CPU가 연산 처리

 

제어장치 (Control Unit)

프로세스 조작을 지시하는 CPU

I/O 장치간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서 결정

 

레지스터

CPU 안에 있는 임시기억장치

CPU와 직접 연결되어 있어, 연산 속도가 메모리보다 수십 배~수백 배 빠름.

→ 자체적으로 데이터를 저장할 방법이 없기 때문에 레지스터를 거쳐 데이터 전달

 

ALU

산술 연산, 논리 연산을 계산하는 디지털 회로

 

CPU 연산 처리

  1. 제어장치가 메모리에 계산할 값 Road + 레지스터에도 Road
  2. 제어장치가 ALU에 레지스터에 있는 값을 계산하라고 명령
  3. 제어장치가 계산된 값을 다시 ‘레지스터 → 메모리’ 계산한 값을 Save

 

인터럽트

어떤 신호가 들어왔을 때 CPU를 잠시 정지시키는 것이며,

I/O 장치로 인한 인터럽트, ZeroDivision 연산에서의 인터럽트, 프로세스 오류 등으로 발생한다.

  • 하드웨어 인터럽트: I/O 장치에서 발생하는 인터럽트
  • 소프트웨어 인터럽트: 트랩, 프로그램 오류 등으로 시스템콜을 호출할 때 발동

인터럽트 발생 시, 인터럽트 핸들러 함수가 함수,
Kernel 내부의 IRQ를 통해 호출되며 request_irq()를 통해 인터럽트 핸들러 함수 등록할 수 있다.

 

컴퓨터 사용 시, I/O 장치 통신, 파일 저장 등 다양한 일을 하며,

이 모든 일들은 컴퓨터 안에 있는 여러 부품(키보드, 하드디스크, 프린터 등)들이 함께 움직여야 가능하다.

 

그러나, CPU는 한 번에 한 가지 일만 처리 가능한데,

키보드 치고, 마우스 움직이는 등 여러 일이 동시에 수행되는 것 같은 이유는 인터럽트 덕분!

 

만약 인터럽트가 없다면, CPU는 계속 키보드한테 “혹시 키보드 눌렀니?”하고 물어봐야 한다.

CPU와 장치를 연결해주는 인터럽트 라인이 설계되면서, CPU는 중요한 계산을 열심히 하고 있다가,

어떤 부품이 “나 좀 봐주세요!”하고 비상벨을 누르면 그때서야 하던 일을 잠시 멈추고 달려가는 방식

‘순차적인 실행을 중지’하고, 비상 상(인터럽트)에 대응하는 방법

 

DMA 컨트롤러

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

CPU에만 너무 많은 인터럽트 요청이 들어오기 때문에 CPU 부하를 막아주며 일을 부담하는 보조 역할

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

 

메모리

전자회로에서 Data, State, Instruction 등을 기록하는 장치 (보통 RAM)

 

타이머

몇 초 안에는 작업이 끝나야 한다는 것을 정하고 특정 프로그램에 시간 제한을 다는 역할

 

디바이스 컨트롤러

컴퓨터와 연결되어 있는 I/O 장치들의 작은 CPU

'Data Analysis > Computer Science' 카테고리의 다른 글

메모리 관리  (3) 2025.08.05
CPU와 기억장치, 메모리  (3) 2025.08.04
자료구조는 왜 중요할까?  (0) 2025.03.14
추상 자료형 (Abstract Data Type)  (0) 2024.07.04
Network Layer : Data Plane  (1) 2024.06.15