옥수수와 식빵 그리고 코딩

System Structure & Program Execution 1 본문

2022/운영체제 - 반효경

System Structure & Program Execution 1

옥식 2022. 2. 22. 22:31

컴퓨터 시스템에서 하드웨어가 어떻게 동작하는지, 프로그램이 이런 하드웨어에서 어떻게 돌아가는지.

컴퓨터 하드웨어적에 대한 설명

 

memory : CPU의 작업 공간

CPU는 매 클럭 사이클마다 메모리에서 기억을 읽어옴

I : input - 키보드, 마우스 등등

O : output - 프린트, 모니터 등등

디스크 : 인풋이자 아웃풋

컴트롤러들이 각 iodevice를 컨트롤함. 각 컨드롤러들이 작은 CPU라 보면 됨

CPU안에 메모리보다 더 빠르게 읽을 수 있는 작은 저장공간 : registers

CPU는 항상 메모리하고만 일함. 만약 다른 장치(키ㅗ드나 디스크 등)와 접근하기 위해 interrupt line이 존재

 

만약 무한 루프 프로그램이라면 

timer : 특정 프로그램이 CPU를 독점하는 것을 막음

프로그램을 돌리다가 타이머에 설정된  시간이 되면 CPU는 명령(instruction)을 멈추고 주도권을 운영체제로 넘어옴.

 

무한루프 아니면 작업 끝나면 운영체제에 CPU반납

 

IO작업이 팔요하면 운영체제에 CPU넘김

DMA controller ; i/odivice에서 인터럽트 걸 때 마다 CPU가 멈추면 비효율적. I/odivice에서 오는 입력을 모아서 한꺼번에 CPU로 전달 (효율적)

 

<mode bit>- 보안을 목적으로 instuction을 나누어 둠

mode bit이 0일때(특권명령) 즉 운영체제가 CPU에서 실행중일 때는 모든 일을 할 수 있음. 운영체제가 CPU를 가지고 있기 때문

mode bit이 1일때(일반명령), 즉 사용자 프로그램이 CPU를 넘겨 받을 때는 접근이 제한되어 있음. 한정된 명령만 실행됨

왜냐 사용자 프로그램은 나쁜 짓을 할 수 있기 때문

 

<타이머>

<device controller>

원래는 메인메모리는 원칙적으로 CPU만 접근 가능하게

i/odivice는 각 버퍼가 달려 있음

 

CPU는 memory에 있는 명령을 받아서 수행. 직접 일 하는게 아니라 메뉴얼에 적힌 대로 일하는 것.

이런 전체적인 통제를 운영체제가 함/

 

<입울력(i/o)의 수행>

시스템 콜 : 사용자 프로그램이 디스크에서 뭘 읽어와야 할 때, 사용자 프로그램이 운영체제 함수를 호출하는 것

interrupt : 일반적인 인터럽트, 타이머 인터럽트나 i/o컨트롤러가 걸어주는 인터럽트

trap : 소프트웨어 인터럽트

넓은 의미는 두개 다 포함

i/o를 하기 위해 인터럽트가 두가지 걸림

처음에는 i/를 요청하는 시스템 콜 -> CPU는 다른 프로그램에 넘어감

i/o를 하기 우ㅐ 필요한 인터럽트는 소프트냐 하드냐

요청할 때는 소프트 다 하고 끝나면 하드르 끝났다고 말함

 

현대의 운영체제는 CPU를 잡을 일이 없음

 

<시스템 콜>

 

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

System Structure & Program Execution 2  (0) 2022.02.23
Introduction to Operating Systems  (0) 2022.02.21
Comments