옥수수와 식빵 그리고 코딩

System Structure & Program Execution 2 본문

2022/운영체제 - 반효경

System Structure & Program Execution 2

옥식 2022. 2. 23. 21:12

컴퓨터-호스트

CPU는 아주 빠른 일꾼, 프로그램 카운터 레지스터가 가리키는 주소를 읽는 일만 함

만약 인터럽트가 들어오면 CPU는 하던 거를 멈추고 CPU제어권이 운영체제로 넘어감.

I/O작업은 운영체제만 조절할 수 있음

I/O 디바이스도 인터럽트를 걸 수도 있지만 타이머도 인터럽트를 걸 수도 있음.(ex 무한루프)

 


<동기식 입출력과 비동기식 입출력>

synchronous : 립싱크의 싱크(서로 시간적으로 맞투는 것)

io에서 싱크로나이즈 : i/o에 여러 작업이 들어오는데 i/o까지 가서 뭐가 있는지 직접 확인하고 읽고 실행하는 것.

요청한 일의 작업이 완료된 것을 확인하고 다른 일 함

asynchronous I/O : 일 던져놓고(요청만 하고) 바로 CPU 얻어와서 다른 일 하는 것

 

if 디스크에서 뭐를 읽어와야 함(io요청-운영체제만 할 수 있음)

일반적으로(싱크로너스, 동기식 입출력) 디스크에서 읽어온 결과를 확인학 다음작업

-여기서 구현방법 1 : 결과 읽어오는동안 마냥 기다림 -> CPU, I/O 낭비

- 구현방법 2 : 기다리는 동안 다른 프로그램에 CPU 넘김 -> CPU, I/O 낭비 줄임

I/O에서 결과 가져오면 다시 CPU 할당

비동기식 입출력(에이싱크로너스)디스크에서 읽어온 결과 확인 없이 할 수 있는 작업하고 결과 읽어오면 결과값을 이용해서 해야하는 일 함

 

<DMA>-메모리 접근 가능

원래 메모리에 접근할 수 있는 장치는 CPU밖에 없음 

근데 I/O장치는 뭐낙 다양하고 작은 일 하나하나마다 인터럽트가 걸리면 효율적이지 못함

그래서 버퍼에 데이터가 어느정도 쌓이면 DMA가 인터럽트를 한번 걸어서 CPU에 전달 (효율적)ㅁ

 

<I/O를 할 수 있는 방법이 서로 다른 두가지가 있음>

왼쪽 : 일반적인 i/o. 각 io엥 별개의 인스트럭션이 있음. 메모리 접근하는 인스트럭션이 따로 있고 io에는 io에 접근하는 스페셜 인스트럭션이 따로 있음.

오른쪽 : memory mapped i/o. io장치도 메모리주소의 연장주소를 붙여서 주소접근

 

<저장장치 계층 구조>

맨 위에 CPU 그 아래 레지스터 > D램으로 이루어진 메인 메모리

위로 갈 수록 단위당 가격이 비싸기 때문에 용량이 작음

volatility(휘발성)이냐 아니냐. 연두색 - 휘발성, 분홍색 - 비휘발성 / 요즘은 메인메모리도 비휘발성이 들어갈 수도 있음.

executable(실행가능한)

caching: 위쪽으로 갈 수록 속도가 빠름. 레지스터와 메인메모리는 속도차이가 큼. 그 속도를 완충하기 위해 캐시메모기 존재. 다만 캐시메모리는 메인메모리보다 용량이 작아 모든 메모리를 담아둘 수 없음. 이런 것을 캐싱이라 함.

 


프로그램이 어떻게 실행되는가

프로그램은 하드디스크에 실행파일 형태로 저장되어 있음 이게 메모리로 올라가면 프로세스가 됨.

이 사이에 한당계를 더 거치는데 그게 버츄얼 메모리(가상메모리)

A라는 프로그램을 실행하면 0번지부터 시작하는 자신만의 주소공간이 생김. 이 주소공간은 스택, 데이터, 코드로 구분됨.

물리적인 메모리에 커널은 항상 상주되어 있음. 실행파일의 가상 메모리는 상주하는게 아니라 당장 필요한 것만 올려놓고 안쓰는건 swap area에 내려놓음. 

file system 하드디스크는 전원이 나가도 계속 저장되어있음(비휘발성)

Swap area 하드디스크는 전원이 나가면 날아감(휘발성)

 

<커널 주소 공간의 내용> - 운영체제 커널에 있는 내용

커널 코드 내용 = 운영체제의 역할

pcb - process control block

프로세스마다 pcb가 관리함

 

요즘 프로그램은 모두 함수로 이루어져 있음

커널함수 - 운영체제 안에 있는 함수

 

<프로그램 실행 단계>

프로그램 A의 관점에서.

프로그램이 CPU에 있으면 유저모드라 함

시스템 콜을 하면 운영체제 커널안의 주소공간이 실행됨

끝나면 CPU제어권이 유저한테 돌아오고

시스템 콜을 하면 다시 커널모드로 가고

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'2022 > 운영체제 - 반효경' 카테고리의 다른 글

System Structure & Program Execution 1  (0) 2022.02.22
Introduction to Operating Systems  (0) 2022.02.21
Comments