해당 학습 문서는 KOREATECH의 김덕수 교수님의 유튜브 무료 강의를 바탕으로 정리되었습니다
무료 강의를 제공해주신 김덕수 교수님께 감사드립니다
https://www.youtube.com/watch?v=EdTtGv9w2sA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN
소프트웨어란?
네이버 사전
컴퓨터 프로그램 및 그와 관련된 문서들을 통틀어 이르는 말. 컴퓨터를 관리하는 시스템 프로그램과, 문제 해결에 이용되는 다양한 형태의 응용 프로그램으로 나눈다
컴퓨터를 관리하는 시스템 프로그램 중 대표 사례이자 핵심 시스템이 OS(Operating System) 운영체제이다
OS 운영체제란 무엇인가?

컴퓨터 하드웨어와 응용 프로그램을 관리하고 제어하는 시스템 소프트웨어의 모음
사용자가 애플리케이션 서비스 사용이 가능하도록 컴퓨터 자원을 제어하는 소프트웨어 시스템이다
컴퓨터의 어떤 하드웨어를 제어하는가?
프로세서
CPU, GPU(그래픽 카드), 응용 전용 처리 장치 등
메모리
주 기억장치, 보조 기억장치 등
주변 장치
키보드, 마우스, 모니터, 프린터, 네트워크 모뎀 등
프로세서(Processor)

시스템 버스
컴퓨터 시스템에서 데이터의 전송 통로로 이용되는 데이터 버스, 주소 버스, 제어 버스를 통틀어 이르는 말. 물리적인 연결 회로이자 논리/프로토콜을 포함하는 개념
CPU ↔ 시스템 버스
CPU는 명령어/데이터를 메모리에서 읽고, 결과를 메모리/입출력 장치로 써야한다. 때문에 CPU에서 바깥으로 연결된 시스템버스가 필요하다
레지스터 ↔ 연산 장치
ALU(산술 논리장치)는 연산을 하려면 피연산자가 필요하며 이러한 피연산자는 보통 레지스터에서 저장되어 있다
컴퓨터의 두뇌(중앙처리장치)
- 연산 수행
- 컴퓨터의 모든 동작 수행
레지스터
프로세서 내부에 있는 메모리
- 프로세서가 사용할 데이터 저장
- 컴퓨터에서 가장 빠른 메모리
레지스터의 종류
용도에 따른 분류
- 전용 레지스터, 범용 레지스터
사용자 정보 변경 가능 여부에 따른 분류
- 사용자 가시 레지스터, 사용자 불가시 레지스터
저장하는 정보의 종류에 따른 분류
- 데이터 레지스터, 주소 레지스터, 상태 레지스터
사용자 가시 레지스터
사용자 프로그램(일반 사용자 모드 코드)이 명령어로 직접 접근하고 수정할 수 있는 CPU내의 레지스터를 의미한다

사용자 불가시 레지스터
사용자가 보거나 접근할 수 없는 레지스터

프로그램 카운터 (PC, Program Counter)
다음에 실행할 명령어의 주소를 보관하는 레지스터이다. 계수기로 되어 있어 실행할 명령어를 메모리에서 읽으면 명령어의 길이만큼 증가하여 다음 명령어를 가리키며, 분기 명령어는 목적 주소로 갱신할 수 있다
명령어 레지스터 (IR, Instruction Register)
현재 실행하는 명령어를 보관하는 레지스터이다
누산기 (ACC, ACCumulator)
데이터를 일시적으로 저장하는 레지스터이다
메모리 주소 레지스터(MAR, Memory Address Register)
프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터이다
메모리 버퍼 레지스터(MBR, Memory Buffer Register)
프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터이다. 메모리 데이터 레지스터라고도 한다
운영체제와 프로세서
운영 체제는 프로세서에게 처리할 작업 할당 및 관리
- 프로세스(Process) 생성 및 관리
프로그램 프로세서 사용 제어
- 프로그램의 프로세서 사용 시간 관리
- 복수 프로그램간 사용 시간 조율 등
메모리
데이터를 저장하는 장치(기억 장치)
프로그램(OS, 사용자 SW 등), 사용자 데이터 등

레지스터, 캐시, 메모리 까지는 프로세서가 프로그램 데이터에 직접 접근할 수 있다. 디스크의 경우 프로그램과 데이터를 메인 메모리에 옮겨야 실행할 수 있다
메모리는 왜 이러한 계층 구조를 가질까?
Register는 속도가 가장 빠르지만 그 만큼 비용적인 부담이 크기 때문에 용량이 작다. 컴퓨터의 적절한 비용 및 성능을 확보하기 위해 이러한 계층 구조가 생긴 것이다
메모리의 종류
주기억장치(Main Memory)
- 프로그램이 수행할 프로그램과 데이터 저장
- DRAM, DDR4를 주로 사용
- 용량이 크고, 가격이 저렴
- 디스크 입출력 병목현상(I/O bottleneck) 해소

무어의 법칙: 매년 IC(반도체 칩)에 집적할 수 있는 트랜지스터 수가 두 배씩 증가하여 칩의 성능이 향상된다
캐시(cache)

프로세서 내부에 있는 메모리(L1, L2 캐시 등)
- 속도가 빠르고 가격이 비쌈
메인 메모리의 병목 현상을 해소
캐시의 동작

캐시 히트(cache hit)
- 필요한 데이터 블록이 캐시에 존재
- 성능의 이득을 보는 상황
캐시 미스(cache miss)
- 필요한 데이터 블록이 없는 경우
- 성능의 손해를 보는 상황
캐시 미스가 반복되면 오히려 성능의 문제가 발생하지 않나? → Locality를 고려했을 때 이를 해소할 수 있다!
지역성(Locality)
공간적 지역성(Spatial Locality)
참조한 주소와 인접한 주소를 참조하는 특성
- 예) 순차적 프로그램 실행
시간적 지역성(Temporal Locality)
한 번 참조한 주소를 곧 다시 참조하는 특성
- 예) for 문 등의 순환 문

지역성은 캐시 적중률(cache hit ratio)와 밀접
알고리즘 성능 향상을 위한 중요한 요소 중 하나
읽어오는 캐시의 크기를 cache line/ block size라고 한다

캐시 동작은 HW에서 관리한다면서 굳이 이렇게 배우는 이유가 뭐냐? → cache miss 발생시 cache가 메인 메모리에서 참조하는 방식에 따라 성능의 차이가 크기 때문!!
이를 강의에서 이중 for 문의 예시로 설명했었다 (1강 24분 50초)
아래 코드의 a 배열은 메인 메모리의 주소 값을 담는 2차원 배열이다
for (i = 0; i ≤ n ; i ++) {
for (j = 0; j < m ; j ++) {
x = x + (a[i][j]); // A
or
x = x + (a[j][i]); // B
}
}
여기서 결론은 A안이 캐시 적중률이 훨씬 크다는 것이었다
보조 기억 장치 (Auxiliary Memory/ Second Memory/ Storage)
프로그램과 데이터를 저장
프로세서가 직접 접근할 수 없음(주변 장치)
- 주기억장치를 거쳐서 접근
- (프로그램/데이터 > 주기억장치)인 경우는?
- 가상 메모리(Virtual Memory)를 통해 접근 → 하드 디스크의 메모리를 주기억 메모리처럼 사용
용량이 크고 가격이 저렴
메모리와 운영체제
메모리 할당 및 관리
- 프로그램의 요청에 따른 메모리 할당 및 회수
- 할당된 메모리 관리
가상 메모리 관리
- 가상 메모리 생성 및 관리
- 논리 주소 → 물리 주소 변환
시스템 버스(System Bus)
HW 데이터 및 신호를 주고 받는 물리적 통로

데이터 버스
프로세서와 메인 메모리, 주변장치 사이에서 데이터를 전송한다. 데이터 버스를 구성하는 배선 수는 프로세서가 한 번에 전송할 수 있는 비트 수를 결정하는데, 이를 워드라고 한다
주소 버스
프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송한다. 주소 버스를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인 메모리의 최대 용량을 결정한다
제어 버스
프로세서가 시스템의 구성 요소를 제어하는 데 사용한다. 제어 신호로 연산장치의 연산 종류와 메인 메모리의 읽기나 쓰기 동작을 제어한다
레지스터 동작

과정 1
PC → MAR
- PC에 저장된 주소를 프로세스 내부 버스를 이용해 MAR에 전달한다
과정 2
Memory(MAR) → MBR
- MAR에 저장된 주소에 해당하는 메모리 위치에서 명령어를 인출한 후 이 명령어를 MBR에 저장한다. 이때 제어 장치는 메모리에 저장된 내용을 읽도록 제어 신호를 발생 시킨다
PC + 1 → PC
- 다음 명령어를 인출하려고 PC를 증가시킨다
과정 3
MBR → IR
- MBR에 저장된 내용을 IR에 전달한다
-PC: 프로그램 카운터 -MAR: 메모리 주소 레지스터 -MBR: 메모리 버퍼 레지스터 -IR: 명령어 레지스터
주변 장치
프로세서와 메모리를 제외한 하드웨어들
입력 장치: 키보드, 마우스, 터치 스크린
출력 장치: 모니터, 프린터, 스피커 등
저장 장치: 보조 기억 장치, USB, 디스크
주변장치와 운영체제
장치 드라이버(OS와 HW간 통신 소프트웨어) 관리
- 주변 장치 사용을 위한 인터페이스 제공
인터럽트(Interrupt) 처리 →Input이 들어왔음을 알림
- 주변 장치의 요청 정리
파일 및 디스크 관리 → 9, 10장에 자세히…
- 파일 생성 및 삭제
- 디스크 공간 관리 등
노션 링크
https://www.notion.so/OS-1-2f19d2a6b97580d0b424e2440e577186
자료 정리
excalidraw를 통해 파일을 open 하시면 자료를 수정 및 복사할 수 있습니다
'운영체제' 카테고리의 다른 글
| [OS] 4강 스레드 관리 (0) | 2026.01.23 |
|---|---|
| [OS] 3강 프로세스 관리 (0) | 2026.01.07 |
| [OS] 2강 운영체제의 개요 (0) | 2026.01.06 |