티스토리 뷰
안녕하세요 :)
운영체제를 주제로 한 첫번째 포스팅입니다.
이번 포스팅에선 전반적인 컴퓨터 시스템에 대하여 내용정리와 함께 슥 훑어 보겠습니다.
Operating System(OS)가 수행하는 세가지 일은 다음과 같습니다.
- Exploits 활용
- provides 제공
- Manages 관리
위 그림은 각각의 자원들의 구성들과 각 자원들이 시스템 버스를 통해 소통한다는것을 알려주고 있습니다.
1. Basic Elements
1.1) processor - 프로세서는 말그대로 처리기를 뜻하며 데스크탑에서는 CPU가 이역할을 수행합니다.
1.2) Main memory - 휘발성 메모리인 RAM 하드웨어를 사용하며, 프로세서가 처리해줄 프로그램들의 이 미지를 저장해 둡니다. 주 기억장치라고도 합니다.
1.3) I/O Module - input,output 의 줄임 I/O 모듈입니다, 입출력 장치 자원들을 이야기 하며 하드디스크, 프린터, 키보드, 모니터 등이 있습니다.
1.4 System Bus - 위에서 설명한 세가지 자원들 사이의 통신을 해주는 역할입니다.
2. Instruction Execution
-processing 은 한가지 instruction cycle을 필요로 합니다.
-그 cycle은 두가지 단계로 구성되어 있으며, 각 단계를 fetches, executes 라고 합니다.
fetch 과정)
프로그램카운터 (pc)
프로세서가 메인메모리로 부터 인트스럭션 하나를 물어온다(fecth), 이때 수행할 인트럭션의 메모리 주소를 pc에 넣습니다. 프로세서가 명령어를 반입한 이후 pc는 1 증가 시켜 다음 명령어가 순서대로 반입됩니다.
인스트럭션 레지스터(IR)
반입된 인스트럭션(명령어)가 위치
instruction categories(명령어의 종류)
- processor-memory -프로세서와 메모리 사이에서의 데이터 이동
- processor-I/O - 프로세서와 I/O디바이스 사이의 데이터 이동
- data processing - 산술 & 논리 연산
- control - 수행 순서 연결
16bit 체계에서의 op 코드는 16가지 이다. 이 op코드를 할당할공간을 제외한 나머지 공간이 Acess가능한 주소공간입니다.
Interrupts
인터럽트가 필요한 이유: 대부분의 프로세서의 성능은 I/O 디바이스의 성능의 4백만배 이상으로 큰 성능차이를 보여줍니다. 이러한 프로세서가 여러작업을 순차적으로 진행함에 있어 비교적 성능이 현저히 좋지않은 I/O 디바이스의 작업을 마냥 기다리고 있게 된다면 효율이 떨어지기 때문에 인터럽트라는 작업을 통해 성능을 높히고 처리 시간을 단축해줍니다.
classes of Interrupts (인터럽트의 종류)
- program : 인스트럭션 수행시 생기는 조건에 따라 생성된다(예로는 연산 오버플로우, division by 0 등)
- timer : 정기적으로 함수 수행(셧다운 예약 등)
- I/O : I/O controller 에 의해 발생하며, 디바이스가 작업을 끝내고 알리는 인터럽트 등
- Hardware failure : 전력차단, 기억장치 패리티 에러
인터럽트 핸들러(interrupt handler)
운영체제의 일부로서, 특정 I/O디바이스에 서비스를 하기위한 프로그램입니다.
fetch excute 사이클에 인터럽트 핸들러가 들어간다면 아래와 같습니다.
싸이클 과정)
프로세서가 인터럽트를 체크한다 -> 만약 인터럽트가 없다면 다음 인스트럭션을 fetch해옵니다.
만약 인터럽트가 있을경우(interrupt is pending) 현재 프로그램을 suspend 시키고 인터럽트 핸들러 루틴을 execute 합니다.
(위와 같은 싸이클의 fetch 과정은 모두 pc 값을 변화시키며 이루어 집니다.)
Multiple interrupts
인터럽트 처리중 다른 인터럽트가 발생한다면
-disabled interrupt
인터럽트 처리중에는 다른 인터럽트를 무시한다.
굉장히 중요한 인터럽트를 처리중 사용
-priorities of inturrupt
인터럽트마다의 priority를 정의하여 그에 따른 우선처리
Cache Memory
운영체제의 입장에서는 존재하지 않음
hit rate를 높게 유지하는 것이 중요함, hit rate란 평균 접근시간 (ex hit rate 가 95인 cache에서 100개의 데이터를 찾을때 level 1 에 있을 확률이 95%라는것 - 레벨을 낮춰가며 찾아가기 때문에 접근 속도가 아주 빠르다)
캐시는 블락단위로 메모리를 빈 슬롯에 저장한다.
메인 메모리의 일부분의 복사본을 저장한다.
프로세서는 캐시를 먼저 체크하고 찾는 내용이 없는 경우 해당 메모리 블락을 캐시에 넣으면서 필여한 정보를 가져간다.
캐시 디자인 이슈)
캐시의 레벨, 사이즈, 블락사이즈, 매핑 함수
빈 슬롯이 없을경우 - LRV알고리즘을 이용해 삭제할 블락을 골라서 지운후 그자리에 새로운 블락을 놓는다.
white policy - 캐시 내에 있는 블락의 내용이 변경될 경우 교체전에 메인메모리에 업데이트, 이때 white policy로 언제 업테이트 할지 결정한다.
업데이트를 내용이 바뀔때마다 할수도 있고 replacement 전에 할수도 있지만, 후자의 경우 메모리 오퍼레이션을 최소화 하지만 메인 메모리는 obsolete state인 메모리를 저장하고 있게 된다.
Direct Memory Access
세가지 I/O 운용 기술이 존재 한다.
- programmed l/O
- interrupt-driven I/O
- direct memory access
다이렉트 메모리 엑세스- 프로세서가 I/O 운영(operation) 을 DMA에 위임하여 DMA가 데이터 블록을 한번에 한 워드씩 직접적으로 메모리에 전송하는것.
-과정
CPU 가 DMA 제어기 (DMA 로 아래 정보를 포함한 명령을 전송
- I/O 장치의 주소 해당 I/O 제어기 내 데이터 기억장치의 주소 )
- 연산 쓰기 혹은 읽기 ) 지정자
- 데이터가 읽혀지거나 쓰여질 주기억장치 영역의 시작 주소
- 전송될 데이터 단어들의 수
DMA 제어기는 CPU 로 버스 요구 (BUS REQ) 신호를 전송
CPU 가 DMA 제어기로 버스 승인 (BUS GRANT) 신호를 전송
DMA 제어기가 주기억장치로부터 데이터를 읽어서 , 디스크 제어기에 저장
단점- 프로세서 처리속도 감소
'Major > Operating System' 카테고리의 다른 글
Operating System - Mutual Exclusion (0) | 2021.04.14 |
---|---|
Operating System - Treads (0) | 2021.04.14 |
Operating System - process description & control (0) | 2021.04.14 |
Operating System - operating system overview (0) | 2021.04.13 |
Operating System - intro (0) | 2021.04.13 |