목차
📂content
1. 컴퓨터 시스템 구조
- 메모리도 device이기 때문에 전담하는 controller가 붙어있다.
- controller들도 작업 공간들이 있는데, 이 것을 local buffer라고 한다.
- cpu가 운영체제에 의해서 실행이 될 때는 머든 상관없음. (운영체제는 컴퓨터를 관리하기 위해 만들어진 것이기 때문) 그런데 운영체제가 사용자 프로그램에게 cpu를 넘겨줄 때는 사용자 프로그램이 무슨 짓을 할 지 모름(예를 들어 cpu를 독점한다거나, 메모리를 많이 쓰도록). 일단 cpu를 넘겨주면 운영체제는 그것을 제어할 길이 없다.
- cpu에서 기계어를 실행할 때, 지금 운영체제가 실행하는 것인지, 사용자 프로그램이 실행하는 것인지 구분하는 것을 두고 있다. 그것이 바로 mode bit이라는 것이다.
1-1. interupt line
- 매 순간 메모리에서 기계어를 읽어와서 실행하고, 다음 기계어를 실행하기 앞서서 혹시 interupt line에 interupt 신호가 들어온 것이 있는지 체크한다.
- interupt는 누가 발생? i/o입출력 장치들이 발생 시킴
- 프로그램 a가 cpu에서 실행을 하다가 디스크에서 어떤 파일을 읽어와야한다. cpu가 직접 디스크를 읽지 못해서 controller에게 어떤 파일을 읽어줘 부탁을 한다. 그러면 controller가 일하고 그동안 cpu는 운영체제를 한 번 통과한 다음에 다음 프로그램에게 넘어간다. 디스크 컨트롤러가 일을 다함. 요청한 파일이 다 읽혀졌다. 이것을 cpu에게 알려주어야 한다. 그래서 일한 디스크가 cpu에게 interupt를 건다. 그럼 다음 기계어를 수행하기에 앞서서 interupt를 확인하고, interupt가 들어왔으면 cpu는 자동적으로 운영체제에게 넘어간다. 그러면 모드빗이 0으로 바뀌고 운영체제가 cpu를 잡아서, interupt에 대응하는 일을 한다.
1-2. register
- cpu는 기계어를 가지고 연산한다. 연산에는 input과 output이 있을텐데 그것을 저장하기 위한 빠르고 작은 크기의 메모리라고 봐도 되는데 메모리는 아님.
- register의 종류에는 여러가지가 있는데 program counter register라는 register가 존재한다.
- 이것은 다음 번에 실행할 기계어의 메모리의 주소를 가지고 있다.
2. Mode bit
- 사용자 프로그램은 모드빗이 1이기 때문에, 어떤 위험한 기계어는 실행을 못 하게, 안전한 기계어만 실행하도록 한다.
- 위험한 명령어는 운영체제가 cpu를 가질 때만 실행
- 불순한 명령을 실행하려고 하는 게 확인되면 자동적으로 cpu가 운영체제에게로 넘어간다.
3. Timer
- 프로그램의 cpu의 독점을 막기 위한 부가적인 하드웨어를 (프로그램에게 cpu를 넘겨주면 운영체제 혼자서는 제어할 수 없기 때문에)
- 일정 시간 간격으로 interupt를 발생시킨다.
- 운영체제가 사용자 프로그램 a에게 cpu를 넘길 때, 그냥 넘기는 것이 아니라 timer에게 시간을 셋팅한 다음에 넘겨준다.
- cpu를 짧은 시간 간격으로 나누어 쓸 수 있도록
📑 출처
http://www.kocw.net/home/cview.do?cid=4b9cd4c7178db077
감사합니다😊
'🎥Etc > [kocw]운영체제' 카테고리의 다른 글
[Ch3]프로세스 관리1 (0) | 2023.06.25 |
---|---|
[Ch2]컴퓨터 시스템의 구조4 (0) | 2023.06.23 |
[Ch2]컴퓨터 시스템의 구조1,2 (0) | 2023.06.23 |
[Ch1]운영체제의 개요2 (0) | 2023.06.23 |
[Ch1]운영체제의 개요1 (0) | 2023.06.23 |