운영체제 -2

2020. 8. 1. 22:50개인공부/운영체제

System Structure & Program Execution

오늘은 하드웨어적인 동작을 설명하는 챕터

 

 

 

메모리는 cpu의 작업 공간

 

cpu는 매 순간 매 클럭사이클마다 메모리에서 인스트럭션(기계어)를 읽어서 실행을 시킴

 

i/o 디바이스인 키보드나 마우스는 input device

 프린터나 모니터는 처리결과를 내보내는 output device

 

disk는 보조기억 장치라고 하지만 i/o 디바이스로 볼수 있음

 

데이터를 읽어서 메모리로 불러들이기도 하고 cpu 처리결과를 저장하기도함

(input & output 동시 수행)

 

 

 

각각의 I/O 디바이스는 그 디바이스를 전담하는 작은 cpu들이 붙어있게 된다.

그걸 우리는 device controller 라고 부른다.

 

예)Disk가 head를 어떻게 움직이고 뭘 저장하는지는 CPU가 관여하는게 아니라

붙어있는 device controller가 담당

 

디바이스들도 그들만의 작은 작업 공간이 필요한데 (memory같은) 그걸

local butffer 라고 부른다.

 

 

 

 

CPU의 운명은 메모리의 인스트럭션을 읽고 수행하는 것.

CPU안에는 메모리보다 더 빠르면서 정보를 저장할수 있는 작은 공간들이있다.

(Registry)

CPU에서 실행되는것이 운영체제 인지 사용자 프로그램인지 구별해주는것이 모드빗

(mode bit)

 

키보드에서 어떤 입력이 들어왔더던지, 디스크에서 뭘 읽어와야한다는지

디스크에서 읽어드릴걸 요청했는데 다 돼었는지 알기 위해 Inturrupt line이 있다.

(intterupt line)

 

inturrupt line 은 cpu와만 일한다.

 

cpu는 i/o 디바이스에 직접 접근하지 않고 메모리랑만 접촉

 

cpu가 다른 i/o 디바이스에 요청할것이 있으면 device controller에게 지시를 내려서

요청 함.  읽어오는 작업은 오래걸릴것이다. disk는 시킨일을 수행하면서 

요청이들어와 읽어 들인걸 local buffer에 저장한다.

 

그 와중 cpu가 놀고 있으면 낭비이니 메모리 인스트럭션을 실행하다

i/o에 일이 필요하면 device controller에게 외주를 준다.

 

cpu는 빠르면서 쉬지않고 일한다. 그래서 여러 프로그램이 실행되면

동시에 수행하는게 아니라 여러 프로그램을 하나씩 빠르게 수행하는것.

 

만약 무한루프를 돌리는 프로그램을 만들어 메모리에 올리면 

계속 cpu가 그것만 실행하고 다른 프로그램을 수행하지 못한다.

(tim sharing 불가).

 

그래서 timer라는 하드웨어가 있는데 특정 프로그램이 cpu를 독점하는것을

막기 위함. 

 

timer에 값을 세팅한다음에 사용자프로그램이 cpu를 넘겨주게됨

프로그램이 계속 cpu를 쓸수 있는게 아니라 timer에 세팅된 시간에 따라

다음 프로그램에 cpu를 넘겨줌

 

cpu가 해당 프로그램을 실행하다가 timer세팅 시간이 되면 timer가

cpu에 interrupt 를 건다

 

cpu는 하나의 메모리 인스트럭션이 끝나고 나면 intterupt line을 체크한다.

interrupt 들어 온게 없으면 다시 인스트럭션을 실행.

 

 

timer가 cpu에 inttupt를 걸면 cpu는 하던일을 잠시 멈추고 cpu의 제어권이 사용자 프로그램에서

운영체제로 자동으로 넘어가게 되있다.

 

운영체제가 사용자 프로그램한테 cpu를 자유롭게 주지만 마음대로 뺏을수는 없다.

 

뺏으려면 본인도 cpu를 가지고 있으면서 인스트력션을 실행해야 뺏든말든 할텐데

사용자 프로그램한테 주면 사용자 프로그램이 계속 쓴다. 그래서 timer라는 추가적인

하드웨어를 둬서 intturpt가 들어오면 운영체제에 cpu가 돌아온다.

 

운영체제에서 사용자프로그램으로 cpu를 줄때는 그냥 주는게 아니라 timer에 시간 세팅을 한 다음에 준다

 

사용자 프로그램은 직접 I/O에 접근할수 없다. 

사용자 프로그램은 자진해서 I/O를 해달라고 운영체제에 cpu를 넘겨주게된다.

 

i/O 접근 관련 모든 인스트럭션은 운영체제를 통해서만 이루어지게 만들어졌다.(보안 등등 )

 

키보드 입력 ->

 

 

 

 

 

'개인공부 > 운영체제' 카테고리의 다른 글

운영체제 1 - 2020.07.27  (0) 2020.07.27