OS 1. System structure & program execution

skh951225·2023년 2월 15일
0

KOCW 운영체제

목록 보기
1/10

출처 : KOCW 운영체제-반효경

운영체제의 의미

운영체제 : 컴퓨터 하드웨어 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

협의의 운영체제(커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분

광의의 운영체제 : 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념

운영체제의 목적

  1. 자원(하드웨어:프로세서,기억장치,입출력장치…,소프트웨어:프로세스,파일,메시지…)을 효율적으로 사용
  2. 컴퓨터 시스템을 편리하게 사용할 수 있게 도움
  3. 사용자간의 형평성 있는 자원 분배

운영체제의 분류

  1. 동시 작업 기능 여부(단일작업 vs 다중작업)
  2. 사용자의 수(단일 사용자 vs 다중 사용자)
  3. 처리방식(일괄처리vs시분할vs실시간)
    일괄처리(batch processing)
    작업 요청의 일정량 모아서 한번에 처리
    시분할(time sharing)
    여러 작업을 수행할 때 컴퓨터 처리 능력을 일정 시간단위로 쪼개서 사용(일반적인 방법)
    실시간(realtime OS)
    정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
    Ex) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
    실시간 시스템의 개념 확장
    Hard/Soft realtime system(경성/연성 실시간 시스템)

주요 용어

Multitasking,multiprocess : 여러 작업을 동시에 수행하는 것
Multiprogramming : 메모리에 여러 프로그램이 동시에 올라가는 것
Time sharing : CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조

Multiprocessor : 하나의 컴퓨터에 CPU가 여러개 붙어 있음을 의미, processor는 보통 CPU를 의미

System structure


CPU : 매 클럭마다 메모리의 instruction을 읽어서 실행
Interrupt line :
Register : 메모리보다 더 빠르면서 정보를 저장할 수 있는 곳
Modebit : CPU를 사용하고 있는 것이 OS 이면 0 사용자 프로그램이면 1. 보안상의 이유로 cpu를 사용하고 있는 주체에 따라 I/o device 접근 권한 등을 부여하기위해 존재

Timer : 특정 메모리의 CPU 독점 사용을 막기 위해 제한 시간을 둠. 제한시간이 지나면 CPU에 interrupt를 건다

Memory controller : 메모리의 특정영역을 두 군데에서 동시에 접근하려고할때 중재하는 역할을 담당

DMA controller(direct memory access) : cpu가 너무 자주 interrupt 당하면 cpu를 효율적으로 사용하지 못하므로 메모리를 접근할 수 있는 권한을 가진 controller. Device 의 출력을 메모리에 저장하고 그 작업이 끝나면 cpu에게 interrupt를 걸어 작업이 끝났음을 알려줌

사용자 프로그램은 보안상의 이유로 I/O device에 직접 접근할 수 없다. 그러한 접근이 요구될때 OS에게 CPU 제어권을 넘겨주게 된다. device가 출력을 뱉어내게 되면 cpu에게 interrupt를 걸어 제어권이 OS에 넘어가게되고 local buffer에 저장된 내용을 해당 사용자 프로그램에 저장하게 된다. 그리고 이전에 실행중인 프로그램은 timer에 남은 시간이 있다면 CPU 제어권을 넘겨받아 작업을 이어 진행하게된다.

I/o device controller : 각 장치를 통제하는 일종의 작은 cpu. 제어 정보를 위해 control register, status register를 가짐(cpu가 부탁한 일을 저장), local buffer 를 가짐 (일종의 data register)
Device driver : os 코드 중 각 장치별 처리 루틴

Interrupt

넓은 의미의 Interrupt
1. Interrupt / hardware interrupt
하드웨어에서 발생한 interrupt ex) timer, I/O device
2. Trap / software interrupt
소프트웨어에서 발생한 interrupt ex) system call, exception

System call : 일종의 함수호출. 하나의 프로그램 내에서 일어나는 함수호출과 달리 I/o device에 접근하는 것과 같이 OS의 접근 권한이 필요할때 프로그램이 os에게 어떤걸 요청하기위해 소프트웨어적으로 cpu에 interrupt를 걸 수 있다. 이러한 interrupt를 system call 이라고 하고, software interrupt(trap)의 일종이다. Software interrupt 에는 exception도 포함한다.

timer 에서 들어온 interrupt, 키보드에서 들어온 interrupt 등 여러 interrupt가 있고 각각이 해야할 일이 다르므로 각 interrupt 를 처리하는 커널 함수를 interrupt service routine 이라고 하고 각 함수의 주소를 interrupt vector라고한다.

CPU는 Program Counter 가 가리키는 instruction을 실행함. PC가 새로운 instruction을 주기전에 interrupt line 을 확인함. Interrupt line별
로 interrupt vector가 존재하며, interrupt vector는 메모리내의 처리 루틴 주소를 가지고 있음. Interrupt service routine은 해당 인터럽트를 처리하는 커널 함수를 의미.

Synchronous I/O vs Asynchronous I/O


Synchronous I/O : 입출력의 결과가 나와야 그 다음 작업이 가능한 것
한정된 CPU 자원이 낭비될 수 있음, 매 시점 하나의 I/O만 일어날 수 있음 -> I/O가 완료될 때까지 해당 프로그램에게서 CPU를 뺏음, I/O 처리를 기다리는 줄에 프로그램을 줄 세움, 다른 프로그램에게 CPU를 줌

Asynchronous I/O : 입출력의 요청만 하고 바로 돌아와 프로그램을 실행

DMA(direct memory access) controller
CPU의 중재 없이 device controller가 device 의 buffer storage의 내용을 메모리에 block 단위로 직접 전송, 전송이 완료되면 CPU에게 전송이 끝났다는 걸 알리기 위해 interrupt를 검

Address

I/O mapped I/O
메모리를 접근하는 instruction 과 I/O를 접근하는 instruction이 따로 있음

Memory mapped I/O
메모리를 접근하는 instruction과 I/O를 접근하는 instruction이 연속적임

Program execution

프로그램은 file system 에 저장되어 있다. 프로그램을 실행하게 되면 물리적 메모리에 올라가 프로세스가 된다. 사실 물리적 메모리에 올라가기 전에 가상 메모리 단계를 거치게 된다.(물리적 메모리에 모두 올리는 것은 낭비가 될 수 있기 때문) 이 virtual memory에 실행된 각 프로그램의 address space가 만들어지고 stack, data, code로 구성된다. Pysical memory에는 virtual memory에서 당장 필요한 것만 올리고 필요가 없어지면 지우게 된다. 하지만 일단 저장하고 있어야하는 정보는 디스크에 내려놓게 되는데 이 곳을 swap area라고 한다.swap area와 file system은 물리적으로 같은 하드웨어이다. Swap area는 메모리 공간의 연장선상으로 사용되고 file system 은 비휘발성 저장매체로 사용된다. 둘의 용도가 다르기 때문에 관리하는 방법도 다르다. Virtual memory의 내용을 pysical memory 로 올리기 위해선 address translation을 해줘야한다.

함수의 종류

사용자 정의 함수
자신의 프로그램에서 정의한 함수
라이브러리 함수
자신의 프로그램에서 정의하지 않고 갖다 쓴 함수
자신의 프로그램의 실행 파일에 포함되어 있다
커널 함수
운영체제 프로그램의 함수
커널 함수의 호출 = 시스템 콜

0개의 댓글