[1장] 운영체제 개요

임정환·2023년 6월 8일
0

운영체제

목록 보기
2/8

OS란

어플리케이션과 하드웨어의 추상화를 제공한다.

저장소에 대한 추상화로 '파일 시스템'을, 네트워크에 대한 추상화로 '소켓'을, 메모리에 대한 추상화로 '가상 메모리' 를 제공하는 것이 좋은 예이다.

운영체제의 중요한 두 가지 역활

  • 하드웨어 추상화
  • 리소스 관리

하드웨어 리뷰

CPU


유저모드와 커널 모드가 존재.
명령어를 파이프라이닝을 통해서 가져오고, 실행한다.
CPU 레지스터에는 프로그램 카운터, 스택 포인터 등의 레지스터가 존재한다.

메모리

디스크

I/O 장치


외부 입력장치로 인한 입력이 들어오게 되면, CPU는 현재 하던 Process를 멈추고 인터럽트 벡터에 따라서 현재 인터럽트 루틴을 처리하게 된다.
아래의 코드를 생각해 보자

int main(){
	char buffer[100];
    fp = fopen();
    fscanf(fp,buffer);
    read(fp,buffer);
}

file system을 통해서 파일을 open 후 , buffer에 넣어주기 위해서는 system call이 필요하다. 인터럽트나 system call을 하게 되면, 커널 모드로 전환되게 된다.
프로세스는 block되며, 위의 그림의 오른쪽과 같이 handler에 의해서 이벤트가 처리되고 다시 프로세스는 running이 되게 된다.

만일 프로세스가 I/O 장치의 접근이 필요하다면 3가지 선택지가 존재한다.

  • 비지웨이팅
    while문을 돌면서, 인터럽트의 결과가 도착하기 까지 기다린다.
  • 인터럽트
    프로세스가 블록되고, 해당 cpu에 다른 프로세스가 스케쥴된다.
  • DMA
    직접 메모리와 I/O 장치가 상호작용한다.
profile
CS 박제

0개의 댓글