CS/운영체제

운영체제와 컴퓨터 시스템의 구조

프론트엔드코린이 2025. 5. 27. 20:16

운영체제의 종류

운영체제는 앞단의 어떤 인터페이스를 두누냐에 따라 GUI와 CUI로 나눌 수 있다.

GUI

  • GUI, Graphical User Interface는 그래픽을 사용하여 컴퓨터와 상호작용하는 인터페이스라 한다.
  • windowOS, macOS 등이 있다.

CUI

  • CUI, Character User Interface는 사용자가 키보드만을 사용하여 문자를 기반으로 컴퓨터와 상호작용하는 인터페이스라 한다.
  • 예전 OS인 MS-DOS가 대표적이다.
  • 챗 GPT도 어떻게 보면 CUI라 할 수 있다.

운영체제의 역할

운영체제의 역할은 다음과 같습니다. 이는 운영체제의 커널이 담당합니다.

  • CPU 스케줄링과 프로세스 상태관리
  • 메모리관리
  • 디스크 파일 관리
  • I/0 디바이스 관리

* 커널이란 : 하드웨어와 소프트웨어를 연결해주는 중간 관리자 역할로 프로그램이 이 자원들을 안전하고 효율적으로 사용할 수 있게 해주는 기능을 한다

* 스케줄링이란 : 컴퓨터는 동시에 많은 프로그램(프로세스)을 실행합니다. 하지만 CPU는 한 순간에 하나의 작업만 처리할 수 있습니다. 따라서 운영체제는 CPU를 여러 프로세스에 "공정하고 효율적으로" 나눠주는 역할을 해야 합니다.

  1. 즉 커널은 프로그램이 실행되어 프로세스로 변할 때, 메모리에 적재하고 자원(CPU, 메모리 등)을 할당하거나 공유할 수 있도록 관리한다.
  2. 그리고 여러 프로세스가 동시에 존재할 경우, 스케줄링을 통해 어떤 프로세스가 먼저 CPU를 사용할지 순서를 결정한다.

운영체제의 구조 흐름

프로그램이 설치 -> 인터페이스 -> System Call -> 커널 -> 하드웨어

운영체제는 크게 3가지로 구분할 수 있다.

  1. 인터페이스(GUI, CUI) -> 현재는 대부분 그래픽 기반의 GUI를 사용
  2. System Call
  3. 커널 (I/O 디바이스, 드라이버, 파일시스템 등등)

컴퓨터 시스템의 구조

  • CPU : 인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼
  • DMA컨트롤러 : CPU의 일을 보조하는 일꾼
  • 메모리 : 전자회로에서 데이터, 상태 등을 기록하는 장치(작업장)
  • 타이머 : 특정 프로그램에 시간을 다는 역할
  • 디바이스 컨트롤러 : I/O 디바이스들의 작은 CPU
  • 로컬버퍼 : 디바이스에 달려있는 작은 메모리

* 인터럽트란 : 예상하지 못한 일이 발생했을 때, CPU의 흐름을 잠깐 멈추고 처리하게 만드는 신호

  🧠 예시로 쉽게 이해해보기
  💡 예: 문서 작성 중인데 전화가 오는 상황

  당신이 워드 문서를 작성 중 (→ CPU가 어떤 프로그램 실행 중)

  갑자기 전화가 울림 (→ 인터럽트 발생)

  하던 일 멈추고 전화 받음 (→ CPU가 현재 작업을 멈추고 인터럽트 처리 루틴 실행)

  전화 끝나고 다시 문서 작성으로 복귀 (→ 이전 작업으로 복귀)

 

* DMA란 : CPU를 거치지 않고, 장치(예: 하드디스크, 네트워크 카드)와 메모리 간에 직접 데이터를 주고받게 해주는 기술
* DMA 컨트롤러 : DMA 컨트롤러는 CPU 대신 I/O 장치와 메모리 사이에서 데이터 전송을 담당하는 하드웨어 장치
* 디바이스 컨트롤러란 : 해당 장치를 실제로 "움직이는 관리자"
* 로컬버퍼란 : 데이터를 임시로 저장하는 기능으로 함수의 지역변수라고 생각하면 된다.
* 타이머란 : 무한루프에 빠지는 프로그램을 제어해주는 기능을 한다.

CPU가 하는 역할

  • CPU에는 크게 3가지로 구분할 수 있다.
  1. ALU(산술논리 연산 장치) - 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 비교를 할 수 있는 논리 연산을 수행하는 장치
  2. CU(Control Unit) - 프로그램의 명령어를 해석하고 연산 순서 및 데이터 흐름을 제어하는 장치
     - 즉  CPU가 어떤 명령어를 언제 실행할지를 결정하고 
     각 구성 요소(레지스터, ALU, 메모리 등)를 지시하는 역할을 한다.
  3. 레지스터 - 레지스터란 CPU 내부에 있는 메모리로써 RAM의 메모리에 적재되어 있는 명령어 중에서 즉시 실행이 되는 명령어를 가져온 후 CPU에 전달을 한다.