운영체제 - 2
chanto11
·2021. 3. 8. 12:33
운영체제의 정의
운영체제는 범용적으로 정의 내릴 수 없다.
컴퓨터에서 항상 동작하는 하나의 프로그램이며 이것을 kernel이라고 부른다.
현대의 컴퓨터 시스템
신경망 컴퓨터, 네트워크 컴퓨터, 양자 컴퓨터, 지식 베이스 시스템(지적 대화, 추론)...
전통적인 컴퓨터 시스템
현재 우리가 사용하는 컴퓨터 시스템 ( 일반적인 컴퓨터, 노트북... )
CPU를 가졌고 여러 device controllers이 bus를 통해 연결된 형태
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 |