운영체제의 종류
운영체제는 앞단의 어떤 인터페이스를 두누냐에 따라 GUI와 CUI로 나눌 수 있다.
GUI
- GUI, Graphical User Interface는 그래픽을 사용하여 컴퓨터와 상호작용하는 인터페이스라 한다.
- windowOS, macOS 등이 있다.
CUI
- CUI, Character User Interface는 사용자가 키보드만을 사용하여 문자를 기반으로 컴퓨터와 상호작용하는 인터페이스라 한다.
- 예전 OS인 MS-DOS가 대표적이다.
- 챗 GPT도 어떻게 보면 CUI라 할 수 있다.
운영체제의 역할
운영체제의 역할은 다음과 같습니다. 이는 운영체제의 커널이 담당합니다.
- CPU 스케줄링과 프로세스 상태관리
- 메모리관리
- 디스크 파일 관리
- I/0 디바이스 관리
* 커널이란 : 하드웨어와 소프트웨어를 연결해주는 중간 관리자 역할로 프로그램이 이 자원들을 안전하고 효율적으로 사용할 수 있게 해주는 기능을 한다
* 스케줄링이란 : 컴퓨터는 동시에 많은 프로그램(프로세스)을 실행합니다. 하지만 CPU는 한 순간에 하나의 작업만 처리할 수 있습니다. 따라서 운영체제는 CPU를 여러 프로세스에 "공정하고 효율적으로" 나눠주는 역할을 해야 합니다.
- 즉 커널은 프로그램이 실행되어 프로세스로 변할 때, 메모리에 적재하고 자원(CPU, 메모리 등)을 할당하거나 공유할 수 있도록 관리한다.
- 그리고 여러 프로세스가 동시에 존재할 경우, 스케줄링을 통해 어떤 프로세스가 먼저 CPU를 사용할지 순서를 결정한다.
운영체제의 구조 흐름
프로그램이 설치 -> 인터페이스 -> System Call -> 커널 -> 하드웨어
운영체제는 크게 3가지로 구분할 수 있다.
- 인터페이스(GUI, CUI) -> 현재는 대부분 그래픽 기반의 GUI를 사용
- System Call
- 커널 (I/O 디바이스, 드라이버, 파일시스템 등등)
컴퓨터 시스템의 구조
- CPU : 인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼
- DMA컨트롤러 : CPU의 일을 보조하는 일꾼
- 메모리 : 전자회로에서 데이터, 상태 등을 기록하는 장치(작업장)
- 타이머 : 특정 프로그램에 시간을 다는 역할
- 디바이스 컨트롤러 : I/O 디바이스들의 작은 CPU
- 로컬버퍼 : 디바이스에 달려있는 작은 메모리
* 인터럽트란 : 예상하지 못한 일이 발생했을 때, CPU의 흐름을 잠깐 멈추고 처리하게 만드는 신호
🧠 예시로 쉽게 이해해보기
💡 예: 문서 작성 중인데 전화가 오는 상황
당신이 워드 문서를 작성 중 (→ CPU가 어떤 프로그램 실행 중)
갑자기 전화가 울림 (→ 인터럽트 발생)
하던 일 멈추고 전화 받음 (→ CPU가 현재 작업을 멈추고 인터럽트 처리 루틴 실행)
전화 끝나고 다시 문서 작성으로 복귀 (→ 이전 작업으로 복귀)
* DMA란 : CPU를 거치지 않고, 장치(예: 하드디스크, 네트워크 카드)와 메모리 간에 직접 데이터를 주고받게 해주는 기술
* DMA 컨트롤러 : DMA 컨트롤러는 CPU 대신 I/O 장치와 메모리 사이에서 데이터 전송을 담당하는 하드웨어 장치
* 디바이스 컨트롤러란 : 해당 장치를 실제로 "움직이는 관리자"
* 로컬버퍼란 : 데이터를 임시로 저장하는 기능으로 함수의 지역변수라고 생각하면 된다.
* 타이머란 : 무한루프에 빠지는 프로그램을 제어해주는 기능을 한다.
CPU가 하는 역할
- CPU에는 크게 3가지로 구분할 수 있다.
- ALU(산술논리 연산 장치) - 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 비교를 할 수 있는 논리 연산을 수행하는 장치
- CU(Control Unit) - 프로그램의 명령어를 해석하고 연산 순서 및 데이터 흐름을 제어하는 장치
- 즉 CPU가 어떤 명령어를 언제 실행할지를 결정하고 각 구성 요소(레지스터, ALU, 메모리 등)를 지시하는 역할을 한다.
- 레지스터 - 레지스터란 CPU 내부에 있는 메모리로써 RAM의 메모리에 적재되어 있는 명령어 중에서 즉시 실행이 되는 명령어를 가져온 후 CPU에 전달을 한다.
'CS > 운영체제' 카테고리의 다른 글
프로세스 메모리 구조 (1) | 2025.05.29 |
---|---|
프로그램 컴파일 과정 (0) | 2025.05.29 |
가상메모리, 페이지테이블, 페이지폴트, 스레싱 (0) | 2025.05.28 |
인터럽트 (1) | 2025.05.27 |
컴퓨터 하드웨어와 소프트웨어 및 운영체제 (0) | 2025.04.28 |