1.Multiprogramming
Motivation : single user CPU 및 I/O devices 를 항상 사용중으로 유지 못함
Multiprogramming:
- 하나의 컴퓨터 시스템에서 여러 프로그램이 동시에 실행될 수 있도록 하는 기술
- CPU의 시간을 분할하여 각 프로그램에게 할당
- 프로그램들이 서로 독립적으로 실행
- Multi-State : 여러 프로그램이 동시에 메모리에 상주하고, 실행 가능한 상태로 대기
- Multiprogramming은 jobs (code and data)을 구성하므로 CPU에는 항상 실행할 작업이 있음
- 시스템의 전체 작업 중 일부가 메모리에 저장
- 하나의 작업을 선택하고 scheduling을 통해 실행
- 작업이 대기해야 하는 경우 OS가 작업 전환 (기다려야 할때만 스위칭)
2.Multitasking
Timesharing (multitasking): 스위칭 엄청 빠르게 하는것, CPU switches jobs so frequently, interactive
- 응답 시간은 1초 미만이어야 한다.
- CPU scheduler 가 실행 준비된 작업을 선택한다.
3.Virtual Memory
Main memory는 multiprogramming/multitasking system 의 모든 프로세스를 수용하기에 충분하지 않음
=> 메모리 부족 문제 발생!
해결방법
- Swapping : 메모리 내용이 실행되도록 안팎으로 이동
- Virtual memory : 메모리에 완전히 포함되지 않은 프로세스를 실행할 수 있다.
Virtual memory : 운영 체제에서 제공하는 기능으로, 물리적인 메모리(RAM)보다 큰 용량의 가상 메모리를 제공
- 하드 디스크나 SSD와 같은 보조 기억 장치를 이용하여 구현
- 디스크나 SSD에 대한 액세스 속도가 느리기 때문에 성능 저하가 발생할수 있음
4.Operating System Operations
최신 os는 interrupt-driven programs 이다.
- Events는 interrupt handlers가 처리하는 interrupts에 의해 전달된다.
- H/W and S/W resources가 공유된다.
* Problem : 프로세스의 오류로 인해 전체 시스템이 손상될 수 있다
multi-user OS의 필수 요구사항 : 프로그램 오류가 다른 프로그램에 영향을 미치지 않아야 한다.
- 위험한 instruction -> dual mode operation
- CPU에 대한 제어 유지 -> timer
[ 노래방 비유 ]
노래방에는 두가지 빌런이 있다.
1.stop 버튼을 누르는 빌런 (dual mode operation)
2.마이크를 놓지 않는 빌런 (timer)
5.Dual-mode operation
H/W 지원 필요
- User mode (Privileged Program 실행 X)
- 사용자 정의 코드(응용 프로그램)
- 다른 시스템에 손상을 줄 수 있는 권한 있는 지침 금지
- I/O 명령, 타이머 명령 등…
- OS 시스템 호출을 통해서만 권한 있는 명령을 호출할 수 있다
- Kernel mode (supervisor mode, system mode, privileged mode) (Privileged Program 실행 O)
- OS 코드
- 권한 있는 지침이 허용
장점
: H/W에서 모드 위반 오류를 감지하고 OS에서 처리할 수 있다.
6.Timer
우리는 운영 체제가 CPU에 대한 제어권을 유지하도록 해야 한다.
Timer
- 지정된 기간이 지나면 컴퓨터를 중단하도록 설정
- 주기는 fixed(예: 1/60초) 또는 variable(예: 1~1000msec)일 수 있다.
- variable timer는 일반적으로 fixed-rate clock과 counter에 의해 구현
- 운영 체제가 카운터를 설정합니다.
- 시계가 똑딱거릴 때마다 카운터가 감소합니다.
- 카운터가 0에 도달하면 인터럽트가 발생한다.
프로그램의 장시간 실행으로부터 보호
- OS가 사용자 프로세스를 제어하기 전에 타이머가 미리 정의된 기간이 지나면 인터럽트로 설정
- 타이머 인터럽트가 발생하면 OS가 제어를 통해 각 사례를 적절하게 처리할 수 있다.
- Time counter 는 privileged instruction 통해서만 수정 가능
'Study > 운영체제' 카테고리의 다른 글
2. Operating System Structures - Operating-system services (0) | 2023.04.11 |
---|---|
1. Introduction - Core components of OS (0) | 2023.04.11 |
1. Introduction - Computer system architecture (0) | 2023.04.10 |
5.CPU Scheduling - Thread scheduling (0) | 2023.04.10 |
5.CPU Scheduling - Multiple-processor scheduling (0) | 2023.04.10 |