운영체제 - 2

chanto11

·

2021. 3. 8. 12:33

운영체제의 정의

운영체제는 범용적으로 정의 내릴 수 없다.

컴퓨터에서 항상 동작하는 하나의 프로그램이며 이것을 kernel이라고 부른다.

 

현대의 컴퓨터 시스템

신경망 컴퓨터, 네트워크 컴퓨터, 양자 컴퓨터, 지식 베이스 시스템(지적 대화, 추론)...

 

전통적인 컴퓨터 시스템

현재 우리가 사용하는 컴퓨터 시스템 ( 일반적인 컴퓨터, 노트북... )

CPU를 가졌고 여러 device controllers이 bus를 통해 연결된 형태

computer system organization

 


bootstrap program

전원을 켜거나 재부팅을 할 때 적재되는 프로그램이다. 일반적으로 펌웨어라고 알려진 ROM 또는 EEPROM에 저장되어 있다. 이 프로그램은 시스템을 모든 측면에서 초기화하며, 운영 체제 kernel을 적재하고 실행시킨다.

 

Interrupts 

I/O HW에 처리가 필요할 경우 CPU에게 처리하도록 하는 것.  CPU에 signal을 보내준다.

하드웨어가 언제나 interrupt를 trigger 할 수 있다. 
트리거(Trigger)는 어느 특정한 동작에 반응해 자동으로 필요한 동작을 실행하는 것을 뜻한다.

 

폰 노이만 아키텍처

명령어 집합 구성 -> 프로그램 -> 메모리 -(Fetch)-> CPU(execute)

 

I/O Structure

대부분의 OS 코드는 I/O 관리를 위해 작성되고 있다.

 


Symmetic multiprocessing - SMP

일반적으로 대부분 multiprocessor system을 사용. 간단히 1개의 메모리에 여러 CPU와 캐시로 동작

Multi-core design: 같은 칩에 여러 코어

 

Multiprogramming

1개 이상의 프로그램이 동시에 메모리에 적재된 상태 - CPU 사용 효율이 증가

 

Multitasking (=Multiprocessing)

멀티프로그래밍 환경에서 동작.

하나의 CPU가 여러 개의 job의 순서를 switch 해주면(시분활) 사용자의 입장에서는 동시에 작업하는 것처럼 느낀다.

 

CPU scheduling: 어떤 프로세스를 다음에 선택할지에 대한 문제 (CPU 효율을 위해)


user mode and kernel mode

H/W 제어는 kernel mode를 통해서만 제어. 

user process executing -> system call -> kernel mode [execute system call] -> return from system call
※ system call === OS API === standard C library ( fork(), open() ... )


Virtualization : 가상화

여러 개의 프로세스를 동시에 실행시킬 수 있으면 여러 OS를 동작시킬 수도 있지 않을까?

VMM: Virtual Machine Manager (VMware, XEM, WSL...)


Computing Environments : 컴퓨팅 환경

  • 전통적인 컴퓨팅
  • Moblie 컴퓨팅
  • Client-Server 컴퓨팅
  • Peer-to-Peer 컴퓨팅 (블록체인)
  • Cloud 컴퓨팅 (AWS, Azrue...)
  • Real-Time Embedded Systems

 

'운영체제' 카테고리의 다른 글

스레드 와 동시성 - Thread & Concurrency  (0) 2021.03.23
프로세스 - 3  (0) 2021.03.18
프로세스 - 2  (0) 2021.03.10
프로세스 - 1  (0) 2021.03.09
컴퓨터와 운영체제 - 1  (0) 2021.03.08