Chapter 1. Introduction and System Structures

2024. 4. 26. 16:40CS 지식/운영체제

1.1 Definition of OS (위키)

2012 기준 나무위키 정의

  • 하드웨어와 유저 사이의 Interface이다.
  • Management, coordination of activities, sharing of the resource와 관련된 일을 한다.
  • 머신에서 운영되는 어플리케이션에 대한 Host로서의 역할을 한다.
  • 어플리케이션이 하드웨어의 운영에 대한 자세한걸 모르더라도 운영체제는 어플리케이션이 다룰 수 있도록 해준다.
  • 현재 우리가 사용하고 있는 대부분의 장비들은 컴퓨터 시스템이다.

현재 나무위키 정의

  • 컴퓨터 하드웨어, 소프트웨어의 자원을 관리하는 시스템 소프트웨어이다.
  • 컴퓨터 프로그램들에게 common service를 제공한다.
  • 프로그램과 컴퓨터 하드웨어 사이에 있는 중간계층이다.
  • 어플리케이션 코드들은 하드웨어에 의해서 일반적으로 바로 실행된다 ( 운영체제에 간섭받지 않는다)
  • 필요에 따라서 운영체제가 가지는 서비스를 하기 위해서 System call을 한다.
  • 하드웨어에 의해서 interrupt를 받게 된다.

1.2 Function of OS (Simple)

운영체제 기능은 User interface, Resource management, Process management, Networking/ Security + Protection 가 있다. 이중 이 책에서는 Resource mangagement, Process management 를 많이 다루고 있다.

 

User Interface

  • CLI ( Command Line Interface ) : 명령어로 사용되는 인터페이스
  • GUI ( Graphical User Interface ) :  그래픽으로 추상화되어 있는 그래프로 사용할 수 있도록 해주는 것
  • EUCI ( End-User Comfortable Interface ) : 사용자가 더 편하게 접근할 수 있도록 해주는 것

Resource mangement

  • Processor mangement
  • Memory management
  • File management
  • I/O management

Process management

  • Process management
  • Thread management

Networking / Security + Protection

  • 독립 교과목으로 네트워크 시간에 배우게 된다.

1.3 Computer System Organization

 

여기서 판 부분이 우리가 배우는 운영체제의 부분이다. 위에서 설명한 것 처럼 시스템 소프트웨어와 컴퓨터 하드웨어 사이에서 동작하고, Resource Mangement를 하는 것을 볼 수 있다.

1.4 OS Classification

OS 분류 기준

  • 동시에 사용할 수 있는 유저의 수
    • Single-user System
    • Multi-user System
  • 동시에 사용할 수 있는 프로세스의 수
    • Single-tasking system
    • Multi-tasking system (Multiprograming system)

Single-user system vs. Multi-user System

  • Single-user system
    • 한유저만 동시에 시스템을 접근할 수 있다.
    • 컴퓨터에 있는 모든 리소스는 한 유저를 위해 서비스 된다
    • Personal Computer로 많이 사용된다
    • 비교적 Protection mechanism 이 필요하지 않다
  • Multi-user System
    • 동시에 여러명의 유저가 시스템을 사용한다
    • Protection mechanism이 중요하다
    • 멀티테스킹도 반드시 지원해야한다.

Single-user system vs. Multi-user System

  • Single-tasking system
    • 무조건 Single-user system이다.
  • Multi-tasking system
    • concurrency control, synchronization 이 필요하다

1.5 OS Sturcture

OS는 kernel 영역과 Utilties영역으로 나뉜다.

Kernel

  • 부팅한 이후에 메모리에 상주하고 있는 영역
  • OS에 가장 중요한 부분이다
  • OS에서 자주사용되는 기능을 지원한다
  • 가장 자주 사용되는 영역은 resource management이다.

Utilities

  • 부팅할 때 메모리에 올라가지 않음
  • 서비스의 프로그램이다
  • 서비스 기능을 주로 지원한다. (UI function)
  • 서비스가 필요하다면 해당 영역만 메모리로 올린다.

Booting

Bootstrap program을 사용해서 Booting이 된다.

  • OS의 kernel을 찾아서 메모리 영역으로 이동시킨다
  • 모든 시스템(CPU register, Device Controller, Memory contents)을 초기화한다.
  • 펌웨어 형태로 ROM에 저장되어있다.

1.6 Dual Mode Operation

컴퓨터 CPU에서는 두가지 다른 모드인 User mode와 Kernel mode로 사용된다. User mode에서 Kernel mode는 trap이나 interrupt가 일어나면 모드가 바뀌게 된다.

 

Interrupt : I/O device와 같은 하드웨어나 소프트웨어에서 singal이 옴 ( 외부 장치에서 예상하지 못한 event가 들어옴)

Trap :  소프트웨어에서 발생한 Interrupt

Exception : 프로그램에서 오류가 발생함 ( 나누기 0 )

System call : 특별한 요청이 유저 프로그램에서 원할 때 사용

User mode : 어플리케이션의 코드가 실행되고 있다.

kernel mode : 커널코드가 실행 되고 있다.

Privileged instructions : 기계어 명령 집합들 중 커널모드에서만 사용되는 기계어 명령어들

1.7 System Call Interface

System call

  • 어플리케이션과 운영체제사이의 interface이다.
  • 운영체제가 어플리케이션에 제공하는 서비스