[운영체제] 2. 컴퓨터 시스템의 구조

서요이·2022년 10월 4일
0

운영체제

목록 보기
2/12
post-thumbnail

2. 컴퓨터 시스템의 구조

운영체제

좁은 의미의 운영체제: 커널, 운영체제의 핵심 부분으로 메모리에 상주하는 부분
넓은 의미의 운영체제: 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함하는 개념

운영체제의 목적

  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
  • 컴퓨터 시스템의 자원(HW/SW)을 효율적으로 관리 - 형평성, 효율성

동시 작업 가능 여부

  • 단일 작업 (single tasking): 한 번에 하나의 작업만 처리
  • 다중 작업 (multi tasking): 동시에 두 개 이상의 작업 처리

사용자의 수

  • 단일 사용자 (single user)
  • 다중 사용자 (multi user)

처리 방식

  • 일괄 처리 (batch processing): 작업 요청의 일정량 모아서 한꺼번에 처리
  • 시분할 (time sharing): 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
  • 실시간 (Realtime OS): 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
    • 경성 실시간 시스템 (Hard realtime system)
    • 연성 실시간 시스템 (Soft realtime system)

Multitasking, Multiprogramming, Time sharing, Multiprocess
컴퓨터에서 여러 작업을 동시에 수행하는 것을 의미

Multiprocessor - 하나의 컴퓨터에 CPU가 여러개 붙어 있음을 의미

운영체제의 예

  • 유닉스 (UNIX)
    • 코드의 대부분을 C언어로 작성
    • 사람이 이해하기 쉬워서 높은 이식성 가짐
    • 최소한의 커널 구조
    • 소스코드 공개
  • DOS (Disk Operating System)
    • 단일 사용자용 운영체제, 메모리 관리 능력의 한계
  • MS Windows
    • MS사의 다중 작업용 GUI 기반 운영체제
    • 불안정성

운영체제의 구조

  • CPU 스케줄링
  • 메모리 관리
  • 파일 관리
  • 입출력 관리
  • 프로세스 관리

운영체제 과목의 수강 태도

본 과목은 OS 사용자 관점이 아니라 OS 개발자 관점에서 수강해야 함

컴퓨터 시스템 구조

device controller: I/O를 담당하는 작은 CPU
local buffer: controller의 작업 공간

Mode bit

  • CPU가 사용자 프로그램에 의해 실행되는지 OS에 의해 실행되는지 구분
  • 1 - 사용자 모드, 0 - 모니터(OS) 모드
  • 보안을 해칠 수 있는 명령어(특권 명령)는 모니터 모드에서만 수행 가능

Interrupt line: 디바이스가 작업을 끝내면 CPU에 interrupt를 걸어 CPU가 자동적으로 운영체제로 넘어감

PC (Program Counter): 다음 번에 실행할 메모리의 주소를 가지고 있음

timer: 일정 시간 간격으로 interrupt 발생시켜 CPU 독점을 막음

CPU가 I/O controller에게 요청하는 기계어는 특권 명령
→ OS에 요청해야 함
시스템 콜: 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것

인터럽트

인터럽트 당한 시점의 레지스터와 program counter를 save 한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다.

  • Interrupt (하드웨어 인터럽트): 하드웨어가 발생시킨 인터럽트
  • Trap (소프트웨어 인터럽트)
    • Exception: 프로그램이 오류를 범한 경우
    • System call: 프로그램이 커널 함수를 호출하는 경우

인터럽트 벡터: 운영체제 종류별로 실행해야 할 코드의 위치를 담고 있는 부분(포인터)
인터럽트 처리 루틴: 해당 인터럽트를 처리하는 커널 함수

현대의 운영체제는 인터럽트에 의해 구동됨

Device Controller

I/O device controller

  • 해당 I/O 장치유형을 관리하는 일종의 작은 CPU
  • 제어 정보를 위해 control register, status register를 가짐
  • local buffer를 가짐 (일종의 data register)

I/O는 실제 device와 local buffer 사이에서 일어남
I/O가 끝났을 경우 interrupt로 CPU에 그 사실을 알림

동기식 입출력과 비동기식 입출력

  • 동기식 입출력 (synchronous I/O)
    • I/O와 CPU의 작업이 동기화 되어야 함
    • I/O의 작업이 끝난 후 다음 작업 수행
    • 기다리는 동안 다른 프로그램에게 CPU를 줌
  • 비동기식 입출력 (asynchronous I/O)
    • I/O와 CPU의 작업이 동기화 될 필요 없음
    • I/O의 결과값과 상관 없이 다음 작업 수행

두 경우 모두 I/O의 완료는 인터럽트로 알려줌

DMA

DMA (Direct Memory Access)

  • 메모리는 CPU만 접근할 수 있음
  • 인터럽트가 빈번할 경우 오버헤드가 커지기 때문에 DMA controller가 메모리에 직접 접근할 수 있음 → CPU에게 알려줌

서로 다른 입출력 기계어

  • I/O를 수행하는 special instruction에 의해 (memory 접근 기계어 따로, I/O 접근 기계어 따로)
  • Memory Mapped I/O에 의해 (memory 접근 기계어로 I/O까지 접근, memory 주소 I/O까지 연장)

0개의 댓글