학교복습용/오퍼레이팅시스템 OS

오퍼레이팅시스템 1주차 / Computer System Overview

브로콜리여사 2025. 3. 6. 16:16

운영체제 = 자원관리자

1. 하드웨어/컴퓨터자원을 효율적으로 관리한다.

2. 편리한 서비스를 제공한다.

컴퓨터시스템의 기본요소

프로세서 : CPU(명령어를 실행/ 프로그램을 실행), 레지스터, master

메모리 : 휘발성,명령어를 저장, RAM, slave

I/O modules(입출력):디스크(비휘발성), master, slave둘다가능

버스: 프로세서 , 메모리, i/o모듈을 연결해주는 것

 

process : 명령어들의 집합을 적재(로딩)하는것

Fetch(반입) > Decode(해석) > Execute(실행)

CPU가 instruction을 처리하는 방법

Master: 데이터를 관리하고, 작업을 할당하는 주요 역할을 담당함.

Slave: Master의 지시에 따라 데이터를 저장하거나 작업을 수행하는 역할

 

 


프로세서

컴퓨터의 두뇌 역할 , CPU

ALU : 산술논리연산 / 만능계산기

레지스터 :  데이터를 임시 저장하는 초고속 메모리,PC,IR

캐시(Cache) : CPU와 메모리 간 속도 차이를 줄이기 위한 고속 저장 장치

 

 

확장성의 문제에서 한계에 이르러서 듀얼코어 / 멀티프로세서(서로다른특징을 지닌 / 분업의 시대)등장

GPU : 그래픽연산 빠르게 처리( 대규모병렬연산 ), 수치계산

SoC : 모바일장치에 사용, CPU와 GPU와 NPU와 메인메모리가 한 칩에 있다.

폰노이만 병목현상 : CPU의 연산 속도보다 메모리에서 데이터를 읽고 쓰는 속도가 훨씬 느려서 성능이 제한되는 문제 , 명령어 가져오기와 데이터 실행이 동시에 되지않는 문제

 

>> Neuromorphic Architecture(인간의 뇌를 묘사해보자)

 

fetch(반입) > decode(해석) > execute(실행)


메모리

RAM

cache(Static RAM / SRAM) : 비싸고 빠르다.

(6 transistors/bit) : 1비트를 저장하는 데 6개의 트랜지스터가 필요 / 캐시 메모리의 밀도가 낮다는 의미에서 "poor density"라고 표현한 것

Main memory(Dynamic RAM / DRAM) : 싸고 느리다 크다.

DRAM(Dynamic RAM)은 1비트당 1개의 트랜지스터와 1개의 커패시터(1T1C)  

 

트랜지스터(Transistor)

트랜지스터는 전류를 제어하는 전자 소자로, 메모리 셀에서 비트(0 또는 1)를 저장하는 역할을 해.

커패시터(Capacitor)

커패시터(축전기)는 전하를 저장하는 부품이야. 마치 배터리처럼 전기를 충전했다가 방전할 수 있는 소자

 

Heterogeneous Memory

CPU와 GPU 같은 서로 다른 종류의 프로세서에서 사용하는 메모리를 통합하고 효율적으로 관리하는 기술

1. cudaMalloc : GPU에서 데이터를 처리하려면 먼저 CPU에서 GPU로 데이터를 복사해야 함.다시 CPU

2. cudaHostAlloc : CPU가 직접 GPU 메모리에 접근하는 방식

 

 

휘발성(전원이 나가면 데이터가 사라진다.) vs 비휘발성(전원이 나가도 데이터가 유지된다)

 

비휘발성에는 flash memory, 하드디스크가 있다.

 

Flash memory

비휘발성, 빠르고 충격과 진동에 강하다/ 튼튼하다 (하드디스크에 비해) 

 

특징

비대칭적인 읽기와 쓰기: 읽기가 쓰기보다 8배 정도 빠르다.

no in place Update : 내용이 있는경우 지우고 써야한다.

Limited endurance : 한계에 다다르면 블록을 더이상 사용할 수 없다.

(수명을 연장하기 위해 wear leveling)

 

DRAM 한계를 극복하고자 등장한 기술이 CXL Memory

1. 현대의 애플리케이션은 대용량 메모리와 빠른 데이터 처리 속도를 필요로 함.

2. 메모리 용량 확장이 쉬움.

 


I/O module (입출력장치)

HDD (Hard Disk Drive)

비휘발성(자성체의 자기화), 속도는 ms(느리다)

 

SSD (Soild State Disk)

flash memory기반으로 하드디스크 처럼 만듬.

FTL : SSD가 HDD처럼 행동 할 수 있도록.

비교


프로세서 레지스터

프로세서 내부에 있는 초고속 임시 저장소

 

범용 레지스터(General-purpose Register)

: 데이터를 임시로 저장 (예: RAX, RBX)  / 중간의 결과나 데이터 값을 저장한다. 

CPU가 RAM보다 훨씬 빠른 (CPU내부에 있는) 레지스터를 적극 활용해서 메모리에 접근하는 횟수를 줄이면 성능이 향상된다!

 

 

특수 레지스터(Special-purpose Register)

  • PC(Program Counter): 다음에 반입할 명령어의 주소 저장 / 자동으로 업데이트 된다
  • IR(Instruction Register): 반입된 / fetch된 명령어 저장
  • PSW(Program status word): 상태정보를 저장
  • MAR(Memory Address Register): 접근할 메모리 주소 저장
  • MBR(Memory Buffer Register): 메모리에서 읽어오거나 저장한 데이터를 임시 저장

MAR,MBR은 외부디바이스와 interface를 하는 레지스터

 


명령어 실행 (Instruction Execution)

ISA (Instruction Set Architecture) 

SW와 HW 사이의 인터페이스를 정의. 명령어의 집합이다.

instruction과 machine states(Registers + Memory)를 정의한다.

(ex. x86, x86-64, IA64, ARM)

 

Instruction Format

opcode: 수행할 연산의 종류 (예: 덧셈, 이동, 곱셈 등)

operands : 연산에 사용될 데이터

 

Instruction Fetch

프로세서가 명령을 메모리로부터 fetch한다.

 

Instruction Decode and Execute

프로세서는 명령을 해석하고 필요한 작업을 수행한다.

Data processing : 데이터 처리

Control : if 같은거

Processor-memory : load 같은거

Processor-I/O : 디바이스와 통신하기 위한 I/O

(ex. 0001 : load,  0010 : store,  0101 : add)

 

Instruction Cycle(CPU가 명령어를 메모리에서 읽고 실행하는 과정)

메모리에서 명령과 데이터를 cpu로 가져오는 fetch, 가져온 명령어를 분석하여 어떤 명령어인지 밝히는 decode,이후 이를 실행하는 exeute

  • MAR(Memory Address Register): 접근할 메모리 주소 저장
  • MDR(Memory Data Register): 메모리에서 읽어오거나 저장할 데이터를 임시 저장

1. 300 데이터주소를 fetch해온다 > PC와 MAR에 300 저장

2. 데이터 저장 > IR과 MBR에 1940저장

3. 1940을 decode한다. 1은 opcode, 940은 operands

0001은 메모리에 저장된 값을 AC에 적재(AC = reg.n)

4. 명령어를 실행한다. AC에 940 => 0003저장

5. 다시 301 데이터주소를  fetch해서 PC, MAR에 저장

6. 데이터 저장 > IR과 MBR에 5941저장

7. 5941을 decode한다. 5은 opcode, 941은 operands

0101은 메모리에 저장된 값을 AC에 더함(AC = reg.n)

8. 명령어를 실행한다. AC에 0003+0002=0005저장

9. 다시 302 데이터주소를  fetch해서 PC, MAR에 저장