오래 못 할 짓 하지 않기
[ 운영체제 ] 1. Introduction 본문
OS란?
Hardware와 유저 사이에서 일을 해주는 곳이라고 생각하면 된다.
- OS 는 Kernel과 부가적인 프로그램으로 이루어져 있음.
Operation
Device Controller는 Local buffer를 가지고 있다.
> 만약 출력장치에 필요한 정보들이 한 번에 들어가면 그것들은 처리하지 못한다.
ex) 프린터기에 여러 명령 한꺼번에 넣기.
따라서 Device Controller가 Buffer에 담아두었다가 , 사용 가능하다는 신호(Interrupt)가 오면 그 때 하나씩 가져간다.
Interrupt
: 하드웨어나 소프트웨어에서 주의를 해달라고 알려주는 신호
Device(Hardware or Software) ↔ CPU
ex) 사용자가 어떻게 해달라 , 어떤 일이 끝났거나 시작되어야 한다 , I/O Device에 a가 눌렸다.
● 주로 Interrupt handler에 의해 처리된다.
● Interrupt 는 주로 자신의 종류를 알려주는 숫자로 나타난다. ( IRQ number = Interrupt ReQuest )
→ 실행하다가..
▶ I/O Device : 나 a 눌렀음
▶ (Transfer done) CPU : ㅇㅋ 확인했음(움푹 파인 곳). (그 이후) 이제 처리하겠음
Interrupt의 종류
● Hardware
● Software
▶ OS는 Interrupt 기반으로 돌아가는 프로그램이다.
Interrupt Handling
Try Catch
하나 만든 거 생각하면 됨
1. 현재 상태 CPU에 저장 ( 레지스터에 저장 )
2. Handler로 PC값 이동 / 가서 처리
3. CPU로 가져와서 원래 상태로 돌아가서 실행
- Device가 CPU를 거치지 않고 바로 Memory 에 접근할 수 있다.
> CPU는 데이터 이동에 관여하지 않음.
ex) 유튜브를 본다고 해보자.
네트워크를 이용해 영상을 가져오는 거 = 네트워크 Device
(네트워크가 모니터로 보낸 = )가져온 영상을 화면에 띄우는 거 = 모니터 Device
CPU는 그 역할을 부여하고 그 뒤에는 자기네들 알아서 해라. 중간에 문제 생기면 와. << 이런 식이다.
- 하드디스크 같은 큰 단위의 I/O Device에 접근할 때 적절하다.
Multiprocessor Systems
하나 이상의 CPU → 하나의 컴퓨터 시스템에서 함께 작동하는 시스템
Processor 안에 CPU Core를 둔다.
1) 그걸 나눠서 여러 Processor로 할 수 있고
2) 하나의 Processor 안에 여러 Core를 둘 수 있다.
구현 방법으론 이렇게 3개가 있다.
● 장점
▶ 메모리와 연결단자를 공유하기 떄문에 경제적이다.
▶ CPU 개수가 늘어나므로 주어진 시간에 할 수 있는 양이 늘어난다.
Multiprogramming
메모리에 여러 프로그램이 로드되어 있는 상태 → 시작할 준비 다 되어있는 상태에서 하나하나 바로바로 수행한다.
한 번에 여러 프로그램을 실행한다?
Multitasking
- Multiprogramming 의 확장
: 하나의 컴퓨터 시스템에서 여러 작업이 동시에 진행되는 것
CPU는 task를 쉽게쉽게 바꾼다.
그러기 위해선 Response time이 짧아야 함.
CPU scheduler가 실행될 준비가 된 task를 고른다.
Multi-user OS
요새 OS는 Interrupt - driven program이다.
● 문제점
Process에서 발생한 하나의 error가 System 전체에 영향을 줄 수 있다.
따라서 이를 위해 나온 것이 Multi-user OS이다.
● 목적
: 하나의 프로그램에서의 에러가 다른 프로그램에 영향을 주지 않도록
- 실행시키기에 위험한 명령어 ▶ Dual mode Operation으로 실행시킨다.
- 프로세스가 너무 오래 걸리는 걸 방지하기 위해선? ▶ Timer 를 사용한다.
- Dual Mode Operation
: OS가 스스로 혹은 System Components를 지키는데 사용된다.
1) User mode
: 다른 시스템에 해를(=영향을) 끼칠 수 있는 Privileged Instructions을 사용할 수 없다.
ex) I/O Inst , Timer Inst
Privileged Inst는 OS System call로만 사용될 수 있다.
2) Kernel mode ( supervisor , System , privileged mode )
: Os code
privileged Inst 사용 가능
이렇게 User mode일 때 위험한 Instruction이 실해되려고 하면 시스템 콜이 걸리고, Kernel로 넘어간다.
> 처리 후엔 다시 User mode
- Timer
: 특정 시간이 지나면 Interrupt가 발생한다.
목적 : 한 프로그램 실행을 너무 오래하는 걸 막기 위해
만약 Timer Interrupt가 발생하면, OS는 각각의 case를 처리하기 위해 제어권을 가질 수 있다.
Process : 실행 중인 프로그램
Thread : 프로그램 중 하나의 가닥 - Thread는 고유 Id, PC값 , Register set이 있다. ( 프로세스도 마찬가지 )
Memory management
1) 모든 Inst는 Memory 안에 있어야 한다.
2) 프로그램을 실행시키기 위해 필요한 Data는 memory에 있어야 한다.
File - System management
: OS는 저장소의 정보를 Logical한 view로 보여준다.
Protection VS Security
● Protection
→ 프로세스 / 유저의 OS에 대한 제어권을 조절하는 매커니즘
● Security
→외부에서 Authentication을 불법적으로 가져가려고 하는 내/외부적 공격을 막는 것
Virtualization
: OS를 다른 OS에서 실행시키게 해주는 것
● Emulation (모방)
▶Source CPU의 타입이 사용하려는 Type과 다를 때
ex) 컴퓨터에서 휴대폰 어플 쓰는 것
● Virtualization
▶ 단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술
윈도우에서 VMWare로 맥 환경을 만들 수 있는 걸 말하는 것 같다.
(출처)
한동대학교 고윤민 교수님 - 운영체제
(참고)
https://blog.naver.com/shakey7/221472286783
'3학년 1학기 > 운영체제 (OS)' 카테고리의 다른 글
[ 운영체제 ] 3. OS Structure ( 디자인,Implementation ) (0) | 2024.03.19 |
---|---|
[ 운영체제 ] 2. System call (0) | 2024.03.16 |
[ 운영체제 ] 17. 파일 시스템 (0) | 2024.01.25 |
[ 운영체제 ] 16. 파일/디렉터리 관리 (0) | 2024.01.24 |
[ 운영체제 ] 15. 페이징의 이점 , 계층적 페이징 (0) | 2024.01.24 |