일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Database
- 생활코딩 데이터베이스
- LeNet
- JavaScript
- CNN
- Python
- 데이터베이스 개론
- 생활코딩 머신러닝야학
- reshape
- tensorflow
- 머신러닝야학
- 딥러닝
- 개발자
- 데이터베이서
- 판다스
- 이것이 자바다
- 머신러닝
- 카카오클라우드스쿨2기
- MySQL
- 머신러닝(딥러닝)
- 연산자
- Java
- 야학
- pandas
- 데이터베이스
- 파이썬
- 생활코딩
- flatten
- Today
- Total
IT's 우
운영체제 3주차 수업 정리 본문
- 컴퓨터 하드웨어
- 명령어 실행 사이클
- 프로그램과 프로세스
컴퓨터 시스템의 구성(사용자 + 소프트웨어 +하드웨어)
컴퓨터 시스템
프로그램의 실행에 필요한 데이터들을 위해 공용 기억 장소를 사용하는 기능적 단위이다.
* 사용자
* 소프트웨어(Software)
- 하드웨어를 활용하여 원하는 결과를 얻을 수 있게 작성된 프로그램
- 정보들이 이동하는 방향과 정보 처리의 종류를 지정해주고, 그러한 동작들이 일어나는 시간을 지정해주는 명령(command)들의 집합
- 시스템 소프트웨어(System Software): OS(WinXP, Unix, Linux 등)
- 응용 소프트웨어(Application Software): 워드프로세서, 웹 브라우저, MS-Excel 등
* 하드웨어(Hardware)
- 각종 회로 및 기계장치들로 이루어진 부분
- 컴퓨터 정보들의 전송 통로를 제공해 주고, 그 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체들
- 컴퓨터 하드웨어의 주요 요소들
중앙처리장치(CPU): 펜티엄 듀얼-코어 프로세서, 쿼드-코어 옵테론 등 기억장치(Memory)
(주기억장치:RAM, ROM, DDR SDRAM 등, 보조기억장치: 디스크, CD-ROM 등)입출력장치
(입력장치: 키보드, 마우스 등, 출력장치: 프린터, LCD 모니터, 스피커 등)전원공급장치, 냉각 송풍기, HDD 등
컴퓨터 하드웨어의 구성(CPU, Memory, HDD, Input/Output)
- CPU의 내부 구성요소(ALU, CU, Registers)
ALU(Arithmetic Logic Unit) | - 각종 산술 연산들과 논리 연산들을 수행하는 회로들로 이루어진 하드웨어 모듈 - 산술 연산 - 논리 연산: AND, OR, NOT, XOR 등 |
레지스터(Register) | - 엑세스 속도가 가장 빠른 기억장치 - CPU 내부에 포함할 수 있는 레지스터들의 수가 제한됨 (특수 목적용 레지스터들과 적은 수의 일반 목적용 레지스터들) |
CU(Control Unit) | 프로그램 코드(명령어)를 해석하고, 그것을 실행하기 위한 제어 신호들을 순차적으로 발생하는 하드웨어 모듈 |
- Memory
DRAM | - 동적 램 - SRAM과 다르게 커페시터라는 배터리가 있어 충전 상태가 되어야 기억할 수 있다. (즉 일정시간에 한번씩 충전을 해주어야하는 리프레쉬 시간이 있어햐하고, 하나의 레지스터와 하나의 커페시터가 기본단위이다.) -충전시간 때문에 다소 속도가 느리지만 같은 저장대비 공간이 작고, 가격이 저렴하다. |
SRAM | -정적 램 -플립플롭으로 이루어져 있다. -6개의 트랜지스터로 구성되며 속도가 매우 빠르고 한번 기억하면 전원이 유지될때까지 저장된다. |
ROM(Read Only Memory) ex) ROM, PROM, EPROM |
-롬은 램과 달리 전원이 없어져도 기억이 가능하다. -오로지 읽기만 가능한 저장장치로 한번 기록하면 재 수정이 불가능한 기억장치이다.(하지만 시간에 따른 기술 발전으로 재기록이 가능해졌다.) |
출처: https://blog.naver.com/makeflood/222404783484
시스템 버스(System Bus)
CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로

주소 버스(Address Bus) | - CPU가 외부로 전송하는 주소 정보를 전송하는 신호 선들의 집합 - 주소 선의 수는 CPU와 접속될 수 있는 최대 기억장치 용량을 결정 -단방향성 |
데이터 버스(Data Bus) | - CPU가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호선들의 집합 -데이터 선의 수는 CPU가 한 번에 전송할 수 있는 비트 수를 결정 -양방향성 |
제어 버스(Control Bus) | -CPU가 시스템 내의 각종 요소들의 동작을 제어하기 위한 신호선들의 집합 -단방향성 |
명령어 실행에 필요한 CPU 내부 레지스터들
프로그램 카운터(Program Counter: PC) | - 다음에 인출할 명령어의 주소를 가지고 있는 레지스터 -각 명령어가 인출된 후에는 자동적으로 일정 크기(한 명령어 길이) 만큼 증가 |
누산기(Accumulator: ACC) | - 데이터를 일시적으로 저장하는 레지스터 - 레지스터의 길이는 CPU가 한 번에 처리할 수 있는 데이터 비트 수(단어 길이)와 동일 |
명렁어 레지스터(Instruction Register: IR) | 가장 최근에 인출된 명령어 코드가 저장되어 있는 레지스터 |
기억장치 주소 레지스터(Memory Address Register: MAR) | PC에 저장된 명령어 주소가 시스템 주소 버스로 출력되기 전에 일시적으로 저장되는 주소 레지스터 |
기억장치 버퍼 레지스터(Memory Buffer Register: MBR) | 기억장치에 쓰여질 데이터 혹은 기억장치로부터 읽혀진 데이터를 일시적으로 저장하는 버퍼 레지스터 |
<CPU의 메모리 접근>
- Memory Read
t1: MAR에 접근할 메모리 번지 저장
t2: Memory에 Memory Read 제어신호
t3: 해당 번지의 데이터가 MBR로 이동
-Memory Write
t1: MAR에 접근할 메모리 번지 저장
t2: MBR에 메모리에 기록할 데이터 저장
t3: Memory에 Memory Write 제어신호
<프로그램 내장 방식 - John von Neumann>
- 1945년 "EDVAC에 대한 보고서"에서 프로그램 내장방식을 주장
- 현대의 컴퓨터는 모두 폰 노이만 방식을 따름
- 폰 노이만 병목 현상
<폰 노이만 구조의 컴퓨터가 하는 일>
- 메모리에서 명령어 가져와서 실행하는 일- 프로그램 실행
- 명령어 실행주기
요즘 | 과거 |
명령어 가져오기 | 명령어 가져오기 |
명령어 해석 | |
명령어 실행하기 | Operand 가져오기 |
실행 | |
인터럽트 체크 | 인터럽트체크 |
Program: HDD에 보관된 명령어와 데이터의 집합(목적) ->보조기억장치에 저장
Process: Program이 실행되는 형대, Program in Execution-> 메모리에 저장
< Program이 어떻게 만들어지나? >

< 명령어 실행주기>
1. 명령어 가져오기: CPU가 기억장치로부터 명령어 읽어오는 단계
t0: PC -> MAR: 현재의 PC 내용(명령어 주소)을 CPU 내부 버스를 통하여 MAR로 전송
t1: M[MAR] -> MBR, PC + 1 -> PC: 그 주소가 지정하는 기억장치 위치로부터 읽혀진 명령어가 데이터 버스를 통하여 MBR로 적재되며, PC의 내용에 1을 더한다.
t2: MBR -> IR: MBR에 있는 명령어 코드가 명령어 레지스터인 IR로 이동
2. 명령어 실행: 명령어를 실행하는 단계
<1. load addr 명령어>
* 명령어 가져오기 ->
t0: IR(addr) -> MAR: 명령어 레지스터 IR에 있는 명령어의 주소 부분을 MAR로 전송
t1: M[MAR] -> MBR:그 주소가 지정하는 기억장소로부터 데이터를 인출하여 MBR로 전송
t2: MBR -> ACC: 그 데이터를 ACC에 적재
<2. add addr 명령어>
* 명령어 가져오기 ->
t0: IR(addr) -> MAR: 데이터를 저장할 기억장치의 주소를 MAR로 전송
t1: M[MAR] -> MBR:저장할 데이터를 버퍼 레지스터인 MBR로 이동
t2: MBR -> R1: MBR에 있는 데이터를 R1으로 이동
t3: ACC + MBR -> ACC: 그 데이터와 AC의 내용을 더하고 결과값을 다시 ACC에 저장
<3. store addr 명령어>
* 명령어 가져오기 ->
t0: IR(addr) -> MAR: 데이터를 저장할 기억장치의 주소를 MAR로 전송
t1: ACC -> MBR: 저장할 데이터를 버퍼 레지스터인 MBR로 이동
t2: MBR -> M[MAR]: MBR의 내용을 MAR이 지정하는 기억장소에 저장
출처: 컴퓨터구조 수업자료, 운영체제 수업자료 참고