오래 못 할 짓 하지 않기

[ 운영체제 ] 1. Introduction 본문

3학년 1학기/운영체제 (OS)

[ 운영체제 ] 1. Introduction

쫑알bot 2024. 3. 12. 01:13
728x90

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

 

 

 

 

 

 

(출처)

한동대학교 고윤민 교수님 - 운영체제

 

 

(참고)

https://blog.naver.com/shakey7/221472286783