IT's 우

운영체제 3주차 수업 정리 본문

카테고리 없음

운영체제 3주차 수업 정리

디우 2021. 9. 27. 03:30
728x90

- 컴퓨터 하드웨어
- 명령어 실행 사이클
- 프로그램과 프로세스



컴퓨터 시스템의 구성(사용자 + 소프트웨어 +하드웨어)

컴퓨터 시스템
프로그램의 실행에 필요한 데이터들을 위해 공용 기억 장소를 사용하는 기능적 단위이다.

* 사용자

* 소프트웨어(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와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로

출처: https://terms.naver.com/entry.naver?docId=2270366&cid=51173&categoryId=51173
주소 버스(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이 지정하는 기억장소에 저장



출처: 컴퓨터구조 수업자료, 운영체제 수업자료 참고

728x90
반응형