운영체제 Chapter2 - 3월 14일 화요일

Jimin·2023년 3월 14일
0

Operation System

목록 보기
5/34

Major Achivements of OS

OS가 하는 주된 역할들
→ 정리된 것들이다. = 모든 OS들은 방법은 달라도 모두 밑의 기능들을 가지고 있다.

1. Process

실행 중인 프로그램

  1. 컴파일 → 이진코드로 하드디스크에 저장이 되어 있다.
    이 프로그램을 실행시키면 메모리에 올라가서 실행이 되게 된다.

  2. 실행하고 있는 프로그램을 OS가 Process라는 형태로 관리한다.

⇒ OS가 하는 일 중에 가장 중요한 일이 우리의 프로그램을 정확하고 효율적으로 실행시키는 것이다.

2. Memory Management

  1. 메모리는 모든 프로그램을 실행할만큼 크지 않다.
    → 메모리를 여러개로 잘라서 프로그램 여러개를 동시에 집어 넣어야 한다.

  2. 메모리 크기가 아무리 커도 그것보다 더 큰 프로그램이 존재할 수 있다.

Virtual Memory 방식

항상 프로그램의 일부만 갖다가 메모리에 넣고 실행을 하다가 다른 부분이 필요하면 그때 그때 메모리에 가져온다.

3. Information protection and Security

  1. 프로그램은 자신에게 할당된 메모리 영역만 access해야 한다.

  2. 프로그램은 자신에게 할당된 자원만 access해야 한다.

  3. 다른 사람의 메모리 영역이나 다른 사람의 자원을 마음대로 가져다가 쓰면 안된다.

  4. 당연히 이 시스템 안에는 이 시스템을 사용해도 좋은 User들외에 다른 User들은 들어 올 수 없다.

4. Scheduling and Resource management

Scheduling

CPU가 하나이든 여러개이든 시스템에서 동시에 여러개의 프로그램을 실행시키면, 당연히 이 프로그램을 실행시키는 순서가 존재한다.
각각의 프로그램을 얼만큼 실행할지도 정해 놓아야 한다.
이를 OS가 관리하는 것을 Scheduling 이라고 한다.


Modern Oprating Systems

정리가 되어 가는 중인 시스템들이다.

1. Microkernel Architecture

옛날엔 OS가 작았기 때문에 OS = Memory 였지만,
요즘은 OS가 크기 때문에 OS 전체가 Memory에 들어올 수 없다.
⇒ 프로그램 Module

항상 메모리에 있어야 하는 부분을 굉장히 작게 최소화 시켜서 Microkernel 이라고 부른다.
나머지 부분들은 OS 작업별로 다 나누어서 여러개의 프로세스로 구현한 것이 Microkernel Architecture 이다.

Microkernel Architecture의 장점

OS가 계속 바뀔 때, Module 화가 되어 있기 때문에 Update 하고 Debuging 하기가 쉽다.

Microkernel Architecture의 단점

OS를 실행하는데 걸리는 시간이 길어진다.

kernel 을 제외한 별도의 programaccess 를 해야하는데 이 때마다 OSSwitching(save&restore) 작업을 해야한다.

2. Multithreading

Thread

동시에 실행가능한 함수들

프로그램을 작성할 때 A함수, B함수, C함수가 존재할 때, 이 세 함수가 동시에 실행할 수 있는 경우가 존재한다.

순차적 실행 X → 동시 실행 O ⇒ 실행 속도 증가

3. SMP Machine (Symmetric multiprocessing)

SMP Machine은 여러개의 CPU를 사용한다.

Symmetric

여러 CPU에서 동시에 OS를 실행시킬 수 있다.

여러 CPU에서 동시에 OS를 실행하면 당연히 충돌하는 경우가 존재한다.

예를 들면, 내가 메모리 1000~2000번지를 A프로그램에 할당하려는데, 다른 프로그램B에도 1000~2000번지를 할당하려고 하면 같은 공간에 두 개의 프로그램이 할당되려는 상황이 발생할 수 있다.

⇒ 이런 상황이 발생하면 안되기 때문에 Symmetric 하게 돌아가는 OS들은 당연히 제어가 필요하다. → concurrency control

Concurrency control

동시에 접근이 가능한 자원에 대해서 순차적으로 접근하도록 Control이 되어야 한다.

4. Distributed Operation System

SMP 머신은 컴퓨터 하단 안에 CPU 여러개(10개, 100개, ...)가 들어 있다.
→ 비쌈

각각의 CPU하나와 OS를 가진 독립적인 컴퓨터들을 네트워크에 연결하여,
하나의 컴퓨터 처럼 사용하는 것을 Distributed Operation System이라고 한다.

각각의 OS에 Layer를 하나 더 씌운다.
⇒ 두 단계 OS를 가지게 한다.


5. Object-Oriented design

module화된 Program들을 사용할 수 있어서 update에 용이하다.


Windows Architecture

  1. 효율성을 중요시 한다.
  2. Microkernel 사용


UNIX Architecture

  1. 공정성을 중요시 한다.
  2. Microkernel 사용 X, 전부가 OS
    → 엄청 오래된 기능들
    → 별도의 프로세스로 나누어 사용을 안함
    ⇒ 속도가 매우 빠르다.


Modern UNIX Architecture

Microkernel 사용 O


Linux Kernel Components

Microkernel 사용 X, 전부가 OS
→ 엄청 오래된 기능들
→ 별도의 프로세스로 나누어 사용을 안함
⇒ 속도가 매우 빠르다.


Android System Architecture

Microkernel 사용 O

profile
https://github.com/Dingadung

0개의 댓글