Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- AWS 침해사고 사례 분석
- reversing
- 리버싱
- 침입 차단 시스템(IPS)
- AWS 3 Tier Architecture
- 네트워크
- Amazon S3
- dreamhack
- AWS 아키텍처 분석
- operating system
- 운영체제
- TryHackMe
- AWS 사고 사례 분석
- terraform
- 프로그래머스
- AWS 보안 아키텍처 분석
- network
- 드림핵
- C
- reversing.kr
- AWS 침해 사고 사례 분석
- AWS IAM Role
- IAM Federation
- AWS 인프라 분석
- AWS Active Directory
- python
- programmers
- AWS 보안 사고 사례 모음
- AWS 인프라 아키텍처
- AWS
Archives
- Today
- Total
lhywk 님의 블로그
[운영체제 OS] Operating System Overview 본문
이 글에선 운영체제(OS)의 전반적인 개요를 다룬다.
1. 컴퓨터 구성 요소 (하드웨어)
운영체제는 물리적인 하드웨어 장치들을 효율적으로 관리하여 사용자가 편리하게 사용할 수 있도록 돕는다.
1.1 주요 하드웨어 구성
- 중앙 처리 장치 (CPU): 컴퓨터의 두뇌로, 명령어를 해석하고 실행한다.
- ALU (산술/논리 연산 장치): 실제적인 산술 및 논리 연산을 수행한다.
- 제어 장치 (Control Unit): 데이터 흐름을 통제하는 지휘자 역할을 한다.
- 레지스터 (Register): CPU 내부의 초고속 임시 저장 공간이다.
- 주기억장치 (RAM): 휘발성 메모리로, 현재 실행 중인 프로그램과 데이터를 저장한다.
- 저장 장치 (Storage): 비휘발성 장치(SSD, HDD)로, 데이터를 영구적으로 보관한다.
- 입출력 및 통신 장치: 외부 세계와 소통(키보드, 모니터)하거나 네트워크(모뎀, LAN 카드)에 연결한다.
2. 명령어 실행 및 인터럽트
2.1 명령어 주기 (Instruction Cycle) 2단계

- 반입 단계 (Fetch Stage): CPU가 메모리에서 명령어를 가져와 레지스터(IR)에 저장하고, 프로그램 카운터(PC)를 증가시킨다.
- 수행 단계 (Execution Stage): 제어 장치가 명령어를 해독(Decode)하고 실제 연산을 수행한다.
2.2 인터럽트 (Interrupt)
- 개념: CPU의 정상적인 실행 흐름을 잠시 멈추고 긴급한 작업을 처리하게 하는 신호
- 필요성: CPU에 비해 매우 느린 입출력(I/O) 장치를 기다리는 동안 CPU가 다른 일을 할 수 있게 하여 효율성을 높인다. (비동기식 입출력).
- 종류:
- 프로그램 인터럽트 (Program Interrupt)
- 현재 실행 중인 프로그램 내부의 문제로 인해 발생하는 인터럽트.
- 타이머 인터럽트 (Timer Interrupt)
- CPU 외부에 있는 하드웨어 타이머에 의해 발생하는 외부 인터럽트(External Interrupt)다.
- 시분할 시스템에 사용.
- 입출력 인터럽트 (I/O Interrupt)
- 키보드, 디스크 컨트롤러 등 입출력(I/O) 장치에 의해 발생하는 외부 인터럽트.
- 하드웨어 실패 인터럽트 (Hardware Failure Interrupt)
- 메모리 패리티 오류(데이터 손상), 정전 등 하드웨어 문제로 인해 발생하는 외부 인터럽트.
- 프로그램 인터럽트 (Program Interrupt)
2.3 다중 인터럽트 처리

- 순차적 처리: 하나를 처리하는 동안 다른 인터럽트를 무시한다.
- 중첩된 처리: 우선순위(Priority)에 따라 더 중요한 인터럽트가 발생하면 현재 처리 중인 인터럽트를 멈추고 새 인터럽트를 먼저 처리한다.
3. 메모리 계층 구조 (Memory Hierarchy)
속도, 용량, 비용의 상충 관계를 해결하기 위해 계층적으로 구성한다.

| 계층 | 위치 | 속도 | 용량 | 비용(비트당) | 휘발성 |
| 레지스터 | CPU 내부 | 최고속 | 최소 | 최고가 | 휘발성 |
| 캐시 (L1, L2, L3) | CPU/근처 | 매우 빠름 | 작음 | 비쌈 | 휘발성 |
| 주기억장치 (RAM) | 메인보드 | 빠름 | 보통 | 보통 | 휘발성 |
| 보조기억장치 (SSD/HDD) | 내부/외부 | 느림 | 큼 | 저렴 | 비휘발성 |
3.1 캐시 메모리 (Cache Memory)
- 목적: CPU와 RAM 사이의 속도 차이 극복.
- 원리: 참조 지역성의 원리(Locality of Reference)를 이용하여 자주 사용될 데이터를 미리 복사해 둔다.
- 캐시 히트(Hit): 원하는 데이터가 캐시에 있음.
- 캐시 미스(Miss): 데이터가 없어 RAM에서 가져와야 함.

- (a) 단일 캐시 (Single Cache): 가장 기본적인 구조. CPU와 주기억장치 사이에 하나의 캐시가 존재하여 둘 사이의 속도 차이를 완충한다.
- Word Transfer: CPU와 캐시 사이에는 CPU가 당장 처리할 작은 데이터 단위(Word)가 오고 간다.
- Block Transfer: 캐시와 주기억장치 사이에는 미래의 사용을 대비해 더 큰 데이터 덩어리(Block)가 오고 간다.
- (b) 3-레벨 캐시 (Three-level Cache): 현대의 고성능 CPU에서 보편적으로 사용하는 다단계 구조다. 속도와 크기가 다른 여러 개의 캐시를 계층적으로 구성한다.
- Level 1 (L1) 캐시: CPU 코어에 가장 가깝고, 가장 빠르며, 용량이 가장 작다.
- Level 2 (L2) 캐시: L1 캐시보다 느리고 용량은 더 크다.
- Level 3 (L3) 캐시: L2 보다 더 느리고 용량도 더 크다. 여러 CPU 코어가 공유하기도 한다.
- 동작: CPU는 L1 캐시부터 순서대로 확인한다. L1에 없으면 L2, L2에도 없으면 L3, L3에도 없으면 비로소 주기억장치에 접근한다. 이 구조는 캐시 히트율을 극대 화하여 성능을 더욱 향상한다.
4. 입출력 통신 기술
- 프로그램된 입출력 (Programmed l/O)
- 처리기는 1/O 연산이 끝날 때까지 I/O 모듈의 상태를 주기적으로 체크한다.
- 인터럽트 구동 입출력(Interrupt-driven l/O)
- I/O 모듈이 데이터를 교환할 준비가 되면 처리기에게 인터럽트를 보낸다.
- 직접 메모리 접근(DMA: Direct Memory Access)
- 디바이스 제어기는 처리기의 간섭 없이 주기억장치와 I/O 모듈 의 버퍼 사이에 데이터 블록을 직접 전송한다.
5. 운영체제의 발전과 주요 기능
5.1 발전 과정
- 순차 처리 (Serial Processing): 운영체제 없음. 사용자가 기계를 독점 사용.
- 단순 일괄 처리 (Simple Batch): '모니터'라는 초기 OS 등장. 비슷한 작업을 묶어 자동 처리.

- 멀티 프로그래밍 (Multiprogramming): 메모리에 여러 프로그램을 올려, 하나가 I/O를 기다릴 때 다른 프로그램을 실행하여 CPU 이용률 극대화.

- 시분할 시스템 (Time-Sharing): CPU 시간을 타임 슬라이스(Time Slice) 단위로 쪼개어 여러 사용자에게 빠르게 배분. 대화형 작업 가능.
5.2 주요 보호 및 제어 기능
- 메모리 보호: 프로그램이 다른 영역이나 OS 영역을 침범하지 못하게 방지.
- 타이머: 특정 프로그램이 CPU를 독점하지 못하도록 강제 중단.
- 특권 명령어 및 모드: 하드웨어 제어 등 위험한 명령은 커널 모드에서만 실행 가능하며, 사용자 모드의 응용 프로그램은 시스템 콜(System Call)을 통해 OS에 요청해야 함.
6. 프로세스 관리와 문맥 (Context)
- 프로세스: 단순히 코드 덩어리가 아니라, 실행 중인 프로그램의 모든 상태를 포함하는 동적인 개념.
- 문맥 (Context): 프로세스가 멈췄다가 다시 시작할 때 필요한 정보의 총합 (PC, 레지스터 값, 메모리 범위 등).
- PCB (Process Control Block): 운영체제가 각 프로세스의 문맥 정보를 저장하는 데이터 구조.
- 문맥 교환 (Context Switching): CPU가 실행하는 프로세스를 바꿀 때, 기존 프로세스의 상태를 PCB에 저장하고 새 프로세스의 상태를 복구하는 과정.

CPU가 하나의 프로세스(A)를 실행하다가 다른 프로세스(B)로 전환해야 할 때(문맥 교환)
1. 현재 CPU의 모든 레지스터 값을 프로세스A의 문맥(PCB)에 저장한다.
2. 프로세스B 의 문맥(PCB)에 저장되어 있던 레지스터 값들을 CPU로 다시 불러온다.
3. 이제 CPU는 B가 이전에 멈췄던 바로 그 지점부터 실행을 이어간다.
7. 운영체제 오류의 주요 원인
1. 부적절한 동기화
여러 프로세스가 협력하며 작업을 할 때, 실행 순서나 타이밍이 맞지 않아 문제가 발생하는 경우
2. 비결정적 프로그램 실행
프로그램의 최종 실행 결과가 실행할 때마다 달라지는 현상으로, 주로 경쟁 상태 때문에 발생
3. 상호배제 실패
공유 자원에는 한 번에 하나의 프로세스만 접근해야 한다는 원칙을 상호배제. 이 원칙이 깨질 때 문제가 발생
4. 교착상태
두 개 이상의 프로세스가 서로 상대방의 작업이 끝나기만을 기다리며, 결국 아무것도 진행하지 못하고 무한 대기에 빠지는 상황
출처
- William Stallings, 운영체제 내부구조 및 설계원리
'Operating System' 카테고리의 다른 글
| [운영체제 OS] Memory Management (1) | 2026.02.01 |
|---|---|
| [운영체제 OS] Deadlock (1) | 2026.02.01 |
| [운영체제 OS] Concurrency (0) | 2026.02.01 |
| [운영체제 OS] Thread (0) | 2026.02.01 |
| [운영체제 OS] Process (0) | 2026.02.01 |