본문 바로가기
CS(Computer Science)/운영체제

[운영체제] 시스템 구조

by whdgus928 2023. 1. 26.

시스템 구조

CPU:

  - CPU스케줄링: CPU 큐에 기다리고있을때 어떤 프로그램에게 CPU 사용권을 줄까

  - 작업할때 필요한 용량 메모리에 올려놓고 사용

  - 메모리에서 인스터럭션 읽어서 실행

  - cpu안에 register, mode bit(v프로그램 구분) 존재

 

※ mode bit: 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록하기위한 보호장치

  - 0 모니터모드: 커널모드 운영체제 수행

  - 1 사용자모드: 사용자 프로그램 수행

  - 중요한 명령은 모니터모드에서만 가능

  - 인터럽트 발생시 하드웨어가 모드빗 0으로 바꿈

  - 사용자 프로그램에 cpu넘기기전에 모드빗 1로 셋팅

  - 제한된 지시만 실행가능

 

메모리: cpu 작업공간, cpu만 접근 가능

  - 한정된 메모리를 어떻게 쪼개어 쓸까

  - 메모리와 디스크는 속도차이가 있음

  - 입출력 버퍼 쌓이면 메모리로 가져옴

 

 캐시: 같은 데이터 접근할때 디스크 안가고 메모리에 저장한걸로 접근

 

디스크: 헤드가 이동하면서 처리하는 느린장치

  - 디스크 스케줄링: 디스크에 들어온 요청을 어떤 순서로 처리할까

  - 파일관리: 디스크에 파일을 어떻게 보관할지 :

  - 움직임을 최소하면서 처리하는게 중요

 

i/o device :

  - 각 입출력장치와 컴퓨터 간에 어떻게 정보를 주고 받게하지, 인터럽트를 통해서 cpu와 통신

  - 프로세스 관리: 프로세스 생성 삭제, 자원 할당 반환

  - 운영체제 통해서만 입출력장치 접근 가능(보안 측면)

  - 키보드 입력되면 운영체제로 넘어가 키보드 값을 사용중인 메모리공간에 복사

 

 사용자 프로그램이 입출력필요할때

  1. 소프트웨어 인터럽트로 cpu에 알림

  2. 하드웨어 인터럽트

 

i/0 device controller

  - 해당 입출력 장치 유형을 관리하는 일종의 cpu

  - 입출력은 실제 device와 local buffer 사이에서 일어남

  - 입출력 끝나면 인터럽트 통해서 cpu에 알리는 역할

 

타이머

  - 정해진 시간이 흐른뒤 운영체제에게 제어권이 넘어가도록 한다

  - 타이머 0되면 타이머 인터럽트 발생시킴

  - cpu를 특정프로그램이 독점하는것으로부터 보호

 

인터럽트: 인터럽트 당한 시점의 레지스터를 저장한 후 cpu의 제어를 인터럽트 처리 루틴에 넘긴다.

  - 느린장치(디스크) 일시키고 다하면 cpu에게 알리는 역할

  - 프로그램 요청을 순서대로 처리하면 비효율적이여서 CPU는 한정시간만 사용하고 회수한다

  - sw 인터럽트(트랩): 시스템콜(프로그램이 커널 함수 호출)

  - 하드웨어 인터럽트: 하드웨어가 발생시킨 인터럽트

  - 인터럽트 벡터: 해당 인터럽트의 처리 루틴 주소를 가지고 있음, 종류마다 주소 적어놓음, ex)테이블

  - 인터럽트 처리 루틴: 해당 인터럽트를 처리하는 커널 함수, 어떤 인터럽트 오면 뭐 처리하는지 적혀있음

 

※ 시스템콜: 사용자 프로그램이 운영체제 서비스를 받기 위해 직접 인터랩터 실행해 운영체제에 요청

 

발생할 수 있는 문제: 무한루프같이 cpu계속 쓸때

  1. timer에 세팅된 값이 있음 이 시간 지날때마다 인터럽트를 체크한다.

  2. 인터럽트 라인 체크하면서 하던일 멈추고 프로그램에서 운영체제로 넘어감

 

컨트롤러 입출력 관리

1. cpu

  (1) 일을시키고나서 당장할수있는거 찾음

  (2) 꾸준히 인터럽트 체크, 인터럽트 들어오면 운영체제로 넘어감

  (3) 컨트롤러 일 다하면 인터럽트로 cpu한테 알림

 

2. 디스크

  (1) 디스크 컨트롤러 통해 데이터 읽어온다

  (2) cpu는 당장 작업 필요한곳으로 넘어감

  (3) 데이터 다 읽으면 인터럽트로 cpu에게 알림

  (4) cpu는 운영체제로 넘어감

  (5) 디스크 로컬 버퍼 있는 메모리에 카피

  (6) 현재 cpu 썼던 거 기다리고 다 쓰면 넘어감

 

※ dma 컨트롤러 있으면 dma도 메모리 접근 가능

  - DMA: 메모리에 접근할 수 있는 장치  

  - 입출력 많아서 cpu가 방해받는걸 막기 위해

  - dma가 입출력 받아 직접 메모리로 복사까지 해줌 그리고 인터럽트 해줌 cpu 입장 효율적


오늘의 정리

cpu는 일꾼이다. 계속 일을 하다가 누가 사용하든간에 인터럽트를 꾸준히 체크한다. 인터럽트 처리 루틴에 따라 인터렙트 벡터를 참고해 해당 일을 한다. 사용자 프로그램에 명령이 확실하지 않기에 보안을 위해 모드빗을 통해 사용자 프로그램이 할 수 있는 명령은 한정적이다. 입출력 요청 들어오면 사용자 프로그램이 인터럽트 라인 세팅해서 시스템 콜을 통해 운영체제게 요청을 한다. 여기서 사용자 프로그램이 계속 cpu 사용하는 경우가 있을 수 있는데 timer를 사용해 시간 제한을 둔다. 해당 시간이 끝나면 인터럽트를 체크해 다른 요청이 들어왔는지 확인한다.

 

 

자료 출처

ABRAHAM SILBERSCHATZ ET AL., OPERATING SYSTEM CONCEPTS, NINTH EDITION, WILEY, 2013

반효경, 운영체제와 정보기술의 원리, 이화여자대학교 출판부, 2008

 

 

반응형

댓글