CS 공부

운영체제 2020-1학기 중간고사 대비 1-2(컴퓨터 시스템의 동작) 본문

CS공부/운영체제

운영체제 2020-1학기 중간고사 대비 1-2(컴퓨터 시스템의 동작)

kluiop1 2021. 7. 1. 15:20

<컴퓨터 시스템의 동작>

 

컴퓨터 시스템의 작업 처리 순서

입력장치로 정보를 입력받아 메모리에 저장

메모리에 저장한 정보를 프로그램 제어에 따라 인출하여 연산장치에서 처리

처리한 정보를 출력장치에 표시하거나 보조 기억장치에 저장

 

명령어와 데이터

입력장치로 컴퓨터에 유입되는 정보

 

명령어

명령어는 실행할 산술·논리 연산의 동작을 명시하는 문장으로, 어떤 작업을 수행하는 명령어 집합 프로그램

 

명령어의 기본구조

연산 부호(OPCode or operation code)

프로세서가 실행할 동작인 연산을 지정

산술연산, 논리연산, shift, 보수 등 연산정의

연산부호가 n비트면 최대 2^n개 연산가능

 

피연산자(operand)

연산할 데이터 정보 저장

데이터는 레지스터나 메모리 가상기억장치 입출력장치등에 위치할 수 있는데 보통 데이터 자체보다는 데이터의 위치 저장

직접 주소 direct address

피연산자에 데이터가 있는 레지스터나 메모리 주소 지정

간접 주소 indirect address

레지스터나 메모리 주소 정보 지정

명령어의 실행 과정

일반적인 명령어 사이클과 세분화된 명령어 사이클

인출 사이클(fetch cyle)

 

메모리에서 명령어를 읽어 명령어 레지스터에

저장하고, 다음 명령어를 실행하려고 프로그램

카운터를 증가시킴

 

인출 사이클에 소요되는 시간을 명령어 인출

시간이라고 함

 

실행 사이클(execution cycle)

 

인출한 명령어를 해독하고 그 결과에 따라 제어

신호를 발생시켜 명령어 실행

 

실행 사이클에서 소비되는 시간을 실행 시간이라고 함

 

간접 사이클(indirect cycle)

 

간접 주소 지정 방법을 사용하는 실행 사이클

명령어를 수행하기 전에 실제 데이터가 저장된

주기억장치의 주소인 유효 주소를 한 번 더 읽어 옴

 

인터럽트 사이클(interrupt cycle)

 

인터럽트는 프로세서가 프로그램을 수행하는 동안

컴퓨터 시스템의 내부나 외부에서 발생하는 예기치

못한 사건

 

프로세서는 실행 사이클을 완료한 후 인터럽트 요구가

있는지 검사. 인터럽트 요구가 없으면 다음 명령어를

인출하고, 인터럽트 요구가 있으면 현재 수행 중인

프로그램의 주소(프로그램 카운터) 값을 스택이나

메모리의 0번지와 같은 특정 장소에 저장. 프로그램

카운터에는 인터럽트 처리 루틴의 시작 주소를 저장해

두었다가 인터럽트 처리를 완료하면 중단된

프로그램으로 복귀하여 계속 수행

 

인출 사이클 과정과 간접 사이클 과정

인터럽트 사이클 과정

인터럽트 명령어

1) 현재 실행중인 프로그램을 중단하고 다른 프로그램의 실행을 요구하는 명령어

2) 시스템 처리효율 향상

3) 프로그램의 실행 순서를 바꾸어가면서 다중 프로그래밍에 사용

4) 예상치 못한 사용자 입력, 갑작스런 정전, 컴퓨터 시스템에서 긴급 요청, 잘 못된 명령어 수행, 입출력 작업완료와 같은 상황을 시스템이 적절히 처리하는 데 필요

5) 사용자가 별도로 조치를 할 필요 없이 프로세서와 OS가 처리

6) 외부장치의 동작과 자신의 동작을 조정하는 수단으로 사용

7) 인터럽트 목적으로 사용하는 제어버스는 인터럽트 요청회선(IRC, interrupt ReQuest line)

 

인터럽트 요청회선

1) 키보드에서 입력에 발생 했을때만 프로세서에 통보하여 처리 프로세서가 이벤트 발생여부 일일이 감시안해도 됨

2) 프로세서가 외부장치 감시 점검 x 이므로 그동안 다른 연산 수행 하여 프로세서 효율 높이는 것 가능

3) 인터럽트 요청 신호에 따라 인터럽트 처리 프로그램 수행

4) 단일 회선과 다중 회선으로 연결

위에 보이듯이 단일 회선은 모든 장치를 하나의 회선으로 연결해놓아서 인터럽트 요청한 장치 판별 기능 필요

그 장치 판별 기능중 하나가 인터럽트 번호(장치에 부여된 고유의 번호 윈도우의 경우 IRQ라고 부름)

 

다중회선은 고유의 회선을 연결해놓아서 바로 판단 가능

 

프로그램은 컴파일러 등을 이용하여 01로 이진화 된 기계 명령어로 변환해야 컴퓨터가 이해할 수 있음

(a) 인터럽트 발생전

프로그램 A 실행 PC는 현재 명령어 가리킴

(b) 인터럽트 발생

현재 명령어를 종료 -> 레지스터의 모든 내용을 스택(또는 프로세서 제어 블록)으로 전달 ->PC에는 인터럽트 처리 프로그램(프로그램B)의 시작 위치를 저장 -> 제어를 넘긴후 프로그램 B 실행

(c) 인터럽트 처리 후

스텍 영역에 있던 내용 레지스터에 다시 저장 -> 프로그램A가 다시 시작하는 위치를 저장 -> 중단 했던 프로그램 A를 재실행

 

휘발성 메모리와 비 휘발성 메모리

 

휘발성 메모리

RAM의 한 종류

전원이 없으면 데이터 사라짐

종류는 DRAM ,SRAM이 있음

DRAM은 저장된 01의 데이터가 일정 시간 지나면 사라짐 따라서 일정 시간마다 재생 시켜 줘야함

DRAMD(Dynamic)은 시간이 지나면 데이터가 사라지니 재생을 필요로한다는 뜻

 

SRAM은 전원이 있는 동안에 데이터 보관 가능 재생할 필요가 없다

속도는 빠르나 가격이 비쌈

 

일반적으로 메인메모리에 DRAM 캐시같은 고속메모리에 SRAM 사용

 

비휘발성 메모리

플래시 메모리(flash memoy), FRAM(Ferroelectric RAM), PRAM(Phase.change RAM)

 

플래시 메모리는 디지털카메라, MP3 플레이어, USB 드라이브 같이 전원이 없어도 데이터를 보관하는 저장장치

 

하드디스크를 대신하도록 만든 SSD(Solid State Disk)가 있다. SSD는 가격은 비싸지만 빠른 데이터 접근 속도, 저전력, 내구성이 좋음