OS 기본 개념

컴퓨터란?

메모리에 프로그램을 저장하는 곳

프로그램이란?

명령어의 집합체

운엥체제란?

  • 프로그램이지만,
  • 하드웨어를 관리하는 프로그램
  • 항상 돌고 있는 프로그램. ex) kernel

Abstract view of the components of computer system

Abstract view of the components of computer system

역할

CPU 스케쥴링과 프로세스 관리

CPU 소유권을 어떤 프로세스에서 할당할것인지, 프로세스의 생성과 지원 할당 및 반환 관리

메모리 관리

한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리

디스크 파일 관리

디스크 파일을 어떠한 방법으로 보관할지 관리

I/O 디바이스 관리

I/O 디바이스 (마우스, 키보드)를 컴퓨터 간에 데이터를 주고받는 것을 관리

구조

유저 프로그램 → GUI → 시스템 콜 → 커널 → 드라이버 → 하드웨어

시스템 콜

OS가 커널에 접근하기 위한 인터페이스
하드웨어 명령어 남용 방지 (꼭 필요할 때만)

컴퓨터 시스템의 구성

Interrupts

마이크로프로세서(CPU)가 프로그램을 실행하고있을 때,
입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우에
마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말한다

Detail

  1. 현재 CPU가 처리하고 있던 일의 진행사항 저장
  2. 인터럽트 코드의 실행을 위해 CPU에 기존에 할당 되어있던 작업과 인터럽트 처리 될 작업을 교환한다
  3. CPU에서 교환된 인터럽트 코드의 처리
  4. 이전 작업을 CPU에 다시 할당
  5. 이전에 중단 되었던 곳부터 다시 진행

interrupt timeline

저장장치 구조

bootstrap program

  • 운영체제를 실행하라면 bootstrap program이 필요하다
  • 컴퓨터가 전원이 켜졌을때 제일 처음 실행되는 프로그램 (EEPROM에 저장되어 있음)
  • OS를 로드시는 명령어를 실행 한다.

EEPROM

  • 속도가 느리므로 정적 프로그램 또는 데이터가 포함되어 있다.
  • 예를들면 iPhone는 EEPROM에 장치의 일련 번호 및 하드웨어 정보를 저장한다.

보조기억장치

  • 메인 메모리는 프로그램과 데이터를 저장할 충분한 공간이 없다.
  • 메인 메모리는 휴발성이라 ...

참고

이 게시글은 주니온 - 운영체제 공룡책 강의를 요약한 내용입니다.