Computer
컴퓨터의 구성 요소
CPU 의 구성 및 종류
- CPU (중앙처리장치)
- CPU의 속도: 헤르츠(클럭) / 진동수
- CPU의 구성: ALU(Arithmetic Logic Unit), 제어장치, 레지스터
- 산술 논리 연산 장치
- 가산기, 보수기, 누산기, 시프트 레지스터, 데이터 레지스터 등으루 구성
- 캐시나 메모리의 데이터는 CPU 전용 저장장치(레지스터)에 저장 됨
- 제어장치
- (1) 역할: CPU 자신과 주변 기기를 제어하는 장치
- 계수기(program counter), 명령 레지스터(instruction register), 명령 해독기(instruction decoder)로 이루어짐
- (2) 제어방식: Hardwired, Micro Program
- Hardwired(고정 배선 제어): RICS 시스템에 적용되며, Harwired Circuit에 의해 생성되는 하드웨어로 구성되며, 상태 계수기와 PLA 회로로 구성됨.
- Micro Program: CISC에 적용되며, 발생 가능한 제어 신호들의 조합을 미리 구성하여 ROM에 저장하여 필요 시 신호를 발생시키는 소프트웨어 방식.
- 레지스터
- 레지스터는 CPU 내부에 있는 기억 장치, 주로 범용 레지스터(General-Purpose)와 전용 레지스터(Dedicated-Purpose)로 구성됨. / Cache-Memory도 있음
- IR(Instruction Register): 현재 수행 중인 명령어 부호를 저장하고 있는 레지스터
- PC(Program Counter): 명령이 저장된 메모리의 주소를 가르킴
- AC(Accumulator): 산술 및 논리 연산 결과를 임시로 저장
- CPU 명령어 구조
- 명령어(Instruction) = 동작 코드 + 오퍼랜드 (Operand)
- 동작 코드(Op-Code): 각 명령어의 실행 동작을 구분하기 위해 표현
- 오퍼랜드(Operand): 명령어 실행에 필요한 자료나 실제 자료의 저장 위치
- 명령어 수행 과정
- (1) 읽기(Fetch Instrcution): 메모리에서 명령을 가져옴
- (2) 해석(Decode Instruction): 명령어 해석
- (3) 실행(Execute Instruction): 명령어 수행
- (4) 기록(Write Back): 수행한 결과를 기록
- 명령어 실행 사이클
- PC(Program Counter)에서 Fetch할 명령어의 주소를 가지고 있음, 프로세스에서 PC가 가르키는 주소를 가져오고, 명령문은 IR(Instruction Register)에 로드됨.
- 로드된 명령어는 수행 과정이 진행되며, Execute Cycle Fetch 과정에서 가져온 명령어를 ALU(가산기)에서 처리하게 됨.
컴퓨터 구조 및 운영체제
- 실행파일은 코드와 리소스로 나뉘어져있당께롱
시분할: 시간 단위로 나눈 것을 말한당께롱
선점형(Preemptive): FCFS(Fisrt-Come-First-Serve) Process Scheduling.
- FIFO는 Queue or Data Structure(자료구조)의 동작 방식
- Cache Memory: CPU와 메모리 사이에 존재하면서 명령어를 빠르게 전달하기 위한 메모리
- Virtual Memory: Virtual Memory는 디스크에 파일로 존재한다.
- 메인 메모리의 단가가 비싼 관계로 많은 프로세스가 동시에 실행될 때, 프로세스의 일부가 메인 메모리로 올라갈 때 일부는 디스크의 파일을 마치 메모리처럼 매핑해서 사용하고, 사용되지 않는 일부를 SWAP 하는 방식으로 내렸다가 올렸다가 하면서 메모리처럼 사용하는 방식이다.
- 메모리 관리, 교체 알고리즘: 메모리를 어떻게 관리할 것인가에 대한 이야기
- 최소 탐색 알고리즘, 실린더가 있고, 원통을 돌면서 겹겹이 쌓인 원통의 층수와 원판의 빠른 속도 등에 의해서 속도 결정, 데이터를 얼마나 빠르게 찾아가는가가 관건이다.
OS는 이제 CPU, Memory, Disk를 어떻게 사용할 것인가에 대한 소프트웨어이다.
메모리
기억 소자(memory cell)
반도체라서 0인지 1인지 값을 저장할 수 있기 때문에 기억 소자라고 할 수 있다.
메모리 동작
메모리 정보를 1 또는 0으로 저장하는데 이 정보를 유지하기 위해 전기적으로 연속 충전되어야함. 이를 Memory Refresh라고도 하며 Memory Timing이라고도 한다.
Memory의 기본 구조는 row와 column이 있는 matrix(행렬)구조의 주소이다.
이를 각각 RAS(Row Address Strobe) CAS(Column Address Strobe)라고 부른다.
프로세서에 있는 정보를 읽거나 메모리에 정보를 기록할 때는 먼저 RAS에 신호를 보내고 CAS를 보내어 주소를 확인한다.
메모리의 동작 과정
1) CPU가 메인보드 칩셋에 데이터를 요청하면, 메인보드 칩셋은 데이터가 있는 CAS를 메모리로 보낸다. 이 작업에는 1Hz(사이클)이 걸림.
2) 행 주소가 메모리의 행 주소 버퍼로 들어오면 Sense Amp(센스 앰프)가 그 행에 들어있는 모든 셀을 읽어낸다. 이렇개 행 부분을 읽는 신호는 RAS라고 부르며 읽는데 걸리는 시간은 RAS-to-CAS라고 한다. (이 과정은 2~3Hz가 걸림)
3) 행 주소 이후 CAS 주소를 건드려 정확한 위치를 찾아낸다. (이 또한 2~3Hz가 걸림)
4) 메모리 셀의 내용을 출력 버퍼로 옮김. (1Hz)
5) 메인보드 칩셋이 버퍼의 내용을 읽고(1Hz) CPU로 전달(1Hz) (=2Hz)
메모리 성능
Access: 메모리와 CPU가 데이터를 주고받는 시간을 의미함.
Unit: ns(nanosecond) / 10억분의 1초
사이클 시간
사이클 시간 = 메모리 액세스 시간 + 리프레시 시간
메모리 분류
Random Access memory (RAM)
SRAM(Static RAM)
DRAM(Dynamic RAM)
SIMM(Single In-line Memory Module)
DIMM(Dual In-line Memory Module)
RIMM(Rambus In-line Memory Module)
Syncronous DRAM
RAM Socket과 연결된 핀의 수에 따라 30,72,168,184 핀으로 나뉨 (+내부적인 선과 형태에 따라 바뀜)
ROM (Read-Only-Memory)
ROM BIOS라고도 불렀음, 옛날에는 BIOS는 ROM에 써야헀어서
BIOS -> UEFI(Unfied Extensible Firmware Interface) -> 플래시에 저장
EPROM(Erasable Programmable ROM)
EEPROM(Electronical Erasable Programmable ROM)
캐시 메모리 성능 결정 요인
1. Size Facotr

Fetch Algorithm
- Demand Fetch
- Pre-Fetch
- 다음에 필요할 것이라고 예상되는 데이터를 캐싱하는 방식 (시간 지역성 및 공간지역성 활용)
Write Policy
-
Write-Through (즉시 쓰기)
- CPU가 캐시의 데이터를 변경하는 즉시 주기억장치에서도 동시에 변경 내용을 기록
- 장점: Consistency 유지
- 단점: 속도
-
Write Back (지연 쓰기)
- Eviction 시 주기억장치에 기록
- 장점: 속도
- 단점: Consistency 불일치
Replacement Algorithm

Mapping Technique
- Direct Mapping
- 주기억장치 블록이 캐시의 단 하나의 지정된 위치에만 저장됨
- Fully Associative Mapping
- 주기억장치 블록이 캐시의 모든 위치에서 자유롭게 저장됨.
- Set Associative Mapping
- Direct-Fully Associative Mapping의 복합.
Locality of Memory
어디서 가져올 건지 중요함. Hit율때맹.
운영체제
Kernel
운영 체제의 일부로써 하드웨어와 프로세스 운용을 위한 소프트웨어이다.
디스크에 파일로 존재, 실행시 메모리에 위치함.
- 프로세스 및 파일 , I/O 장치 관리
- 메모리 관리
- 시스템 호출 인터페이스 기능 수행
또한 모든 하드웨어를 관리할 수 있음. 다른 응용 프로그램이 이러한 하드웨어에 접근하는 것을 도와주는 통로가 됨.
- 커널이 응용프로그램의 요청을 받아 하드웨어가 수행을 하고 그 결과를 다시 응용프로그램에게 전달하는 역할을 수행함.
1) System Call Interface
응용 프로그램이 운영체제에게 특정 작업을 요청하는 접수 창구 역할
2) Process Management
실행 중인 프로그램(프로세스)들을 생성, 스케쥴링, 제어
3) Memory Management
서버의 RAM 공간을 효율적으로 할당하고 관리
4) File System Management
물리적 저장 장치에 데이터를 파일 단위로 저장하고 읽을 수 있도록 관리
5) IO / Dvice Driver Management
컴퓨터에 연결된 다양한 하드웨어 장치들을 제어하고 관리
6) Network Stack
네트워크 통신을 위한 데이터 송수신 처리
Thread, Syncronization
-
Mutex
Purpose: MutEx
Scope: Inter-Process
Implmentation: Kernel Object
-
Critical Section
Purpose: MutEx
Scope: Single Process
Implmentation: User Area
-
Semaphore
Purpose: Control Resources, MutEx
Scope: Inter-Process
Implmentation: Kernel Object
-
Event
Purpose: Trasmit Signals and Control Sequnce
Scope: Inter-Process
Implmentation: Kernel Object