컴퓨터 과학 기초 요약본인데
1.5. 컴퓨터 하드웨어의 기본 구성 (교재 p.50)
- 컴퓨터 하드웨어의 구성
|
|
|
⑴ 메인보드(마더보드): 각 장치 사이의 데이터를 전달하는 중간적 역할
⑵ 중앙처리장치(CPU: Central Processing Unit)
① 기능: 모든 실행 프로그램의 명령을 해석하고 실행, 컴퓨터의 모든 장치를 제어
② 성능 결정 요소
-처리 속도 (Hz): 컴퓨터 내부에 내장된 시스템 클럭의 작동 수
ex) 1GHz → 초당 10억 번 정도 전기적 신호를 발생
-버스의 폭: 한 번에 처리할 수 있는 데이터의 양. 32bit, 64bit
③ 구성: 산술논리연산장치, 제어장치, 레지스터
⑶ 메모리
① 주기억장치: CPU가 작업할 수 있도록 프로그램과 데이터를 기억하는 장치
② RAM(Random Access Memory): 휘발성 메모리, 임의 접근 기억장치
-DRAM(Dynamic RAM): 주기적인 재충전 필요, 주기억장치로 주로 사용
-SRAM(Static RAM): 재충전 불필요, 빠른 접근 속도 캐쉬 메모리로 주로 사용
③ ROM(Read Only Memory): 비휘발성 메모리
Mask ROM: 한 번 저장된 내용은 수정 불가
-PROM (Programmable ROM): 사용자의 필요에 따라 한 번의 데이터 저장 가능
-EPROM (Erasable PROM): 자외선을 사용해서 내용 삭제 가능
-EEPROM (Electrically EPROM): 전기를 사용해서 내용 삭제 가능
⑷ 보조 기억장치: 데이터를 반영구적으로 저장하기 위한 장치, 속도가 느리지만 대량의 기억용량
ex) 하드디스크, 플로피디스켓, CD롬
⑸ 입력장치: 외부의 데이터를 컴퓨터로 읽어 들이는 장치
ex) 키보드, 마우스, 스캐너, 조이스틱
⑹ 출력장치: 컴퓨터에서 처리된 결과를 사용자에게 직접 보여주기 위한 장치
ex) 모니터, 프린터
2.3.1 중앙처리 장치 기능 (교재 p.76)
1) 중앙 처리 장치 (CPU): 프로그램을 수행하기 위해 기억장치에 저장되어 있는 명령어들을 실행함으로써 컴퓨터시스템에 있어서 핵심적인 역할을 수행.
명령어들을 기억장치로부터 차례로 인출하여 해독하고 실행하는 것과 관련된 모든 작업이 이루어지는 곳
① 명령어 인출(instruction fetch): 명령어를 기억장치로부터 읽어온다.
② 명령어 해독(instruction decode): 명령어를 해독하여 수행할 작업을 결정한다.
③ 데이터 인출(data fetch): 명령어를 수행하는 과정에 있어서 필요한 데이터를 기억장치 또는
입력장치로부터 읽음
④ 데이터 처리(data processing): 인출된 데이터에 요구되는 산술연산이나 논리연산을 수행한다.
⑤ 데이터 저장(data store): 수행한 결과를 저장(=data 쓰기, data 이동)
2.3.2 중앙처리 장치의 구성 (교재 p.77)
2) 중앙처리장치의 구성(CPU 내부 구조 및 시스템 버스와의 접속)
|
|
|
|
⑴ ALU(산술/논리 연산장치): 정해진 연산을 수행한 후, 결과를 다시 CPU 내부의 레지스터에 저장
⑵ 레지스터: CPU 내에서 처리되는 결과나 data, 프로그램을 위한 고속의 임시 저장장소
① 누산기(AC): 계산에 필요한 data를 임시로 저장
② 프로그램 카운터(PC): 다음에 수행될 명령어의 주소를 가짐
③ 명령어 레지스터(IR): 현재 실행중인 명령어를 기억
④ 기억장치 주소 레지스터(MAR): 다음에 수행될 명령어를 인출하기 위해 현재 PC에 들어있는
주소가 시스템 주소버스로 출력되기 전에 일시적으로 저장되는 주소 레지스터
⑤ 기억장치 버퍼 레지스터(MBR): 기억장치에 쓰여 질 data나 기억장치로부터 읽어온
data를 임시로 저장하는 레지스터
⑥ 인덱스 레지스터: 인덱스 주소지정 방식에서 사용되는 레지스터
⑦ 스택 포인터: 스택 주소지정 방식에서 사용, 스택의 최상위를 지정
⑶ 제어장치: 명령어가 바르게 수행될 수 있도록 모든 컴퓨터 시스템 요소를 제어하는 신호를 발생
이상의 각 장치는 시스템내부버스를 통해 서로 연결, 시스템버스를 통해 외부장치와 CPU를 연결
2.3.3 CPU의 동작(교재 79쪽)
|
|
|
※ C0 ~ C2 : CPU 클럭의 각 주기
① 인출: 기억장치의 지정된 위치로부터 CPU로 명령어를 가져오는 단계
C0: MAR ← PC C1: MBR ← M(MAR), PC ← PC+1 C2: IR ← MBR
② 실행 사이클: 인출된 명령어를 해독하고 직접 명령을 실행하는 단계
-LDA(Load AC) 명령: 누산기(AC) ← 메모리 내용
C0: MAR ← IR(addr) C1: MBR ← M(MAR) C2: AC ← MBR
-ADD 명령: AC ← AC + 기억장치의 내용
C0: MAR ← IR(addr) C1: MBR ← M(MAR) C2: AC ← AC+MBR
-STA(Store AC) 명령: 기억장치 ← AC
C0: MAR ← IR(addr) C1: MBR ← AC C2: M(MAR) ← MBR
-BUN 명령에 대한 마이크로 연산: 프로그램의 수행을 지정된 유효 주소로 이동
C0: PC ← IR(addr)
③ 인터럽트 사이클: 인터럽트(CPU의 정상처리를 방해하는 예상치 않은 사건) 발생 시 현재 수행 중이던 처
리 과정을 저장한 후에 인터럽트 사이클 시작. 처리가 끝나면 원래의 프로그램으로 복귀하여 계속 수행
④ 간접 사이클(indirect cycle): 인출 사이클에서 읽어 들인 명령어가 간접 주소지정 방식의 명령어일 경우에
기억장치로부터 실제 필요한 유효 주소를 읽어오는 과정
2.3.6 산술/논리 연산장치 (교재 p.87)
1) 입출력 플래그: 연산의 잘못된 부분을 표시(/0, overflow)
2) 정수의 표현
⑴ 양의 정수 표현 (8비트의 경우)
▶ 8비트로 표현가능한 수보다 315가 크므로 오버플로우 발생
⑵ 음의 정수 표현
① 부호화-크기 방식. 범위: -(2N-1-1) ~ +(2N-1-1)
☞ 단점: +0 (00000000), -0 (10000000)이 존재함 (0이 2가지 존재)
② 1의 보수 방식: 양수는 부호 없는 정수의 표현과 동일하지만 음수는 양수에 대한 보수를
통해 표현(0→1, 1→0). 수의 범위: -(2N-1-1) ~ +(2N-1-1)
-특징: +0 (00000000), -0 (11111111)이 존재, -2의 보수 방법의 기초 제공
③ 2의 보수 방식: 컴퓨터에서 가장 많이 사용하는 방식 (2의 보수는 1의 보수 + 1)
-수의 범위 : -(2N-1) … +(2N-1-1)
-특징: 오직 하나의 0이 존재, 연산이 간편.
※ 참고: 세 표현법의 비교
․양수를 절대치와 같은 음수로 변환 시: 부호-절대치, 1의 보수, 2의 보수 순으로 변환이
. 부호화-크기 방식은 덧셈 시에도 가산기와 감산기가 모두 필요하여 h/w비용이 요구된다.
․1의 보수, 2의 보수방법은 가산기만으로 가능
․1의 보수방법: 올림수의 처리문제로 인해 연산속도가 2의 보수방법보다 느린 경우가 발생하
고, +0과 -0의 2가지 0표현으로 인해, 연산결과가 0인지 아닌지에 따라 수행이 달라질 경우,
연산결과가 0인지 아닌지 판단하는데 2의 보수보다 시간이 오래 걸린다.
3) 부동 소수점 수의 표현(교재 p.90): 소수점 위치가 필요에 따라 이동하는 표현 방법
N=(-1)S×M×BE = 0.123*102
S:수의부호, M:가수, B:기수(base), E:지수
4) 논리 연산
|
|
레지스터에 저장된 데이터의 특정 비트값을 변경할 때 유용 AND(reset): 0으로 셋팅 OR (set): 1로 셋팅 XOR (보수) |
5) 쉬프트 연산: 왼쪽 쉬프트(×2의 효과), 오른쪽 쉬프트(÷2의 효과)
|
2.3.7 제어장치 (교재 p.92) 프로그램의 명령어들을 해독하고 그 결과에 따라 명령어 실행에 필요한 제어신호 발생. 각 명령어 사이클에서의 마이크로 연산들의 수행순서를 제어프로그램의 명령어들을 해독하고 그 결과에 따라 명령어 실행에 필요한 제어신호 발생 |
|
3.2.1 프로세스 관리 (교재 p.121)
1) 프로세스의 개념 :실행 중이거나 곧 실행이 가능한 프로세스 제어 블록(PCB:프로세스에 대한 정보를 저장
하고 있는 자료구조 테이블)을 가진 프로그램
2) 프로세스 상태
① 준비(ready)상태: 주기억 장치에 올라와 있지만 CPU를 할당받지 못한 상태. 이후 프로세스를 할당 받게 되면 실행상태로 전이 (=디스패치 또는 스케줄)
② 실행(running)상태: 프로세스가 CPU를 할당받고 있는 상태.
-선점: 시간종료(실행중인 CPU가 할당시간에 작업을 종료하지 못할 때)나 우선순위가 높은
프로세스가 들어오면 프로세서를 반납하고 준비상태로 전이
-블록: 프로세스가 프로세서를 차지하고 실행되다가 입출력 처리가 발생하면 프로세서를
넘겨주고 입출력이 완료될 때까지 대기상태로 전이
|
③ 대기(blocked)상태: 필요한 자원을 요청하고 이를 할당받을 때까지 기다리는 상태. -조건만족: 대기 중인 프로세스가 필요한 자원을 할당받게 되면 다시 준비상태로 전이 ④ 보류(suspended): 시스템이상이나 과부하 등으로 프로세스가 기억장치를 빼앗긴 상태. 준비, 실행, 대기상태에서 보류상태로 갈 수 있다. |
|
3) 인터럽트: 프로세서가 명령문을 수행하고 있을 때 예측하지 못했던 사건 등이 발생하여 다른 작업을 처리하기 위해 수행하던 일을 강제로 중단시키는 것
① SVC인터럽 ② 입출력인터럽 ③ 프로그램검사 인터럽
④ 하드웨어인터럽 ⑤ 외부인터럽 ⑥ 재시작인터럽
3.2.2 병행프로세스(교재 p.124)
: 두 개 이상의 프로세스가 동시에 실행되는 것. 상호협력 또는 독자실행 가능
비동기성: 프로세스 간에 상호 협력하는 것
* 병행 프로세스의 비동기성으로 인한 문제의 해결 방법 *
① 동기화(synchronization)
: 2개 이상의 프로세스를 동시에 실행할 수 없으므로 처리 순서를 결정하는 것
② 상호배제(mutual exclusion): 하나의 프로세스가 공유데이터 영역의 사용을 완료할 때까지
다른 프로세스의 공유데이터 영역의 접근금지
③ 임계영역(critical section):
: 공유데이터에 접근할 수 있도록 설정된 프로그램의 영역. 공유데이터가 들어 있음
3.2.3 교착상태(교재 p.124)
: 병행처리와 자원공유로 인해 발생되는 문제. 즉, 다른 자원을 가지고 있는 서로 다른 프로세스를
동기화시키는 것이 프로세스 관리의 핵심으로 자원이 여러 사용자에 의해서 사용될 수 있을 때 발생할 수 있는 문제로 시스템의 자원을 좀 더 효율적으로 사용하려다 보니 발생. 다중프로그래밍 환경에서 프로세스가 아무리 기다려도 자원이 할당되지 않는 상태
* 발생 조건(다음의 4가지를 모두 만족해야 교착상태가 발생. 하나라도 빠지면 발생하지 않는다.)*
① 상호 배제(mutual exclusion)조건: 오직 하나의 프로세스만 자원을 점유
② 점유와 대기(hold and wait)조건: 자신에게 이미 할당된 자원을 점유하고 있으면서 다른 프로세스가 점
유하고 있는 자원을 추가로 할당받기 위해 요구하며 기다린다.
③ 비선점(non-preemption)조건: 일단 자원이 할당되면, 강제적으로 빼앗기지 않는다.
④ 환형 대기(circular wait)조건: 그림처럼 각 프로세스들이 서로 다른 프로세스가 가지고 있는 자원을 요구하여 cycle구조를 형성
* 해결 방법 *
① 예방(prevention): 발생조건 4가지 중 하나를 제거. 자원 낭비 가능
② 회피(avoidance): 모든 프로세스를 정상적으로 종료시틸 수 있는 상태로만 유도.
어느 정도의 자원 낭비.
③ 발견(detection): 주기적/필요시마다 시스템 상태를 검사. 일반적으로 환형 대기상태를 조사
④ 회복(recovery): 교착 상태 발생시, 이 교착 상태를 제거하여 다른 프로세스가 자원을 사용가능토록.
3.3 기억장치 관리 (교재 p.131)
3.3.1 주기억장치 관리
1) 주기억장치 관리 전략
① 반입 전략(언제 가져오느냐?): 요구반입, 예상 반입
② 배치 전략(어디에 위치?):
․최초적합: 요구된 것을 수용할 수 있는 첫 번째 영역에 배치
․최적적합: 최적 크기의 영역에 배치. 남는 영역이 너무 작아서 다른 프로그램을 적재하기 어렵다.
단편화 문제: 주기억장치에서 부분적인 기억 공간이 프로그램에 의해 사용되지 않고 낭비되는 현상
․최악적합: 가장 큰 영역에 배치, 남는 영역에 다른 프로그램을적재 가능. 단편화를 최소화
③ 교체전략(어떤 것을 제거?)
2) 주기억장치 관리 기법
① 단일 프로그래밍 기법: 초기 컴퓨터. 시스템 내에 항상 하나의 프로세스만 존재, 관리가 간단, 구현이 용이
② 고정 분할 다중 프로그래밍 기법: 주기억장치를 여러 개의 고정된 크기로 분할하여 실행 중인 여러 프로세
스에게 할당. 분할된 각 영역에는 하나의 프로그램만 적재가능. 주기억장치 관리가 간단하고 시스템을 효
율적으로 사용할 수 있으나 분할된 영역들에 대한 보호가 필요하고 단편화 문제 발생 가능,
③ 가변 분할 다중 프로그래밍 기법: 프로그램 크기에 맞게 주기억장치 공간 할당. ②처럼 프로세스들이 연속
된 공간을 할당 받음. 처음부터 단편화가 발생하진 않지만 시간이 자나감에 따라 어느 정도의 단편화발생
존나 쓸데없는거 외우게 하네..

댓글 (5)
우리나란 색공부 하면 문제집 ㅋㅋㅋㅋㅋ... TEXT문제집..
느끼는거? 그딴거 없다 논리적으로 보색배색. 이런색쓰면 이런느낌이다 텍스트로 배우고 끝이다?
그렇게 배워놓고 어떻게 색을쓰라고 ㅋㅋㅋㅋ
진짜 보면볼수록 어이가 도망감 ㅋㅋㅋㅋ