[OS] 오퍼레이팅 시스템 중간 정리 - 1. OS Structure

유보라·2022년 4월 24일
0

학교 공부

목록 보기
1/7

안녕하세요! 보라입니다💜

현재 저는 Operating System이라는 과목을 수강하고 있어요!

내용이 많이 어렵길래 중간고사가 찾아오기 전에 미리미리 정리해보려고 합니다!

  1. OS란?
  2. OS Structure
  3. Process
  4. Process Scheduling
  5. Thread Concurrency
  6. Synchronization Tools

0. OS란?

Operating System의 준말.

OS의 역할 (정의)
① resource allocator : 자원들을 할당함
② program controller : 프로그램을 관리

1. OS Structure

1) Computer Hardware

Computer Hardware

① Bus
-> 중요 구성품들을 연결, 데이터와 명령 전달

  • data bus
  • command bus/address bus
    (명령들은 bus를 통해 read or write 둘 중 하나로 전달됨)

② Bus arbiter(관리자)
-> multiple bus 요청들을 관리

③ Bus master(보내는 쪽)
-> 요청 신호를 보내서 bus transaction을 만듦 ex) CPU, Device Controllers(보낼 수도 있고)

④ Bus slvae(받는 쪽)
-> 요청 신호를 받고 명령 수행 ex) Memory, Device Controllers(받을 수도 있음)

⑤ I/O controller registers
-> CPU 명령에 따라 입출력 작업을 수행

  • Data registers (input, output)
  • Control registers (control, status)

I/O Operation 과정

① Output register가 read 가능한지 체크
② 만약 가능하다면, 명령 → control register, 데이터 → data register 이렇게 전송
③ 만약 불가능하다면, ①을 계속 반복하여 체크

Polling I/O vs Interrupt-driven I/O

① Polling I/O
-> CPU가 주도해서 작업 완료했는지 체크
② Interrupt-driven I/O
-> CPU는 명령만 한 번 수행하고, I/O Controller가 작업 후에 CPU에 전달

Memory-mapped I/O vs Port-mapped I/O

① Memory-mapped I/O
-> memory와 I/O가 같은 주소 공간을 사용
② Port-mapped I/O
-> I/O 장치들을 위한 고유의 주소 공간이 존재함. 각각 포트번호 사용

2) Interrupt Mecahnism

Interrupt란?

CPU가 프로그램을 수행하다가, 입출력 장치나 예외 상황 등이 발생하여 처리가 필요할 때, 마이크로프로세서에게 알려 처리할 수 있도록 하는 것.

  • 하드웨어 Interrupt : CPU 외부 장치가 CPU에 어떤 사실을 알리거나 어떤 것을 요청할 때 발생.
  • 소프트웨어 Interrupt : CPU 내부에서 발생. ex) system call, exception, trap

Interrupt Handling

① CPU는 위에서부터 내려오며 프로그램을 실행하고 있다.
② Interrupt 발생! 이때 하던 명령까지만 수행한 후에 하던 일을 PCB(Process Control BLock)에 memory, register 등... 그대로 저장해놓는다. 그리고 PC(Program Counter, 레지스터의 한 종류)에 중단된 명령의 주소를 저장한다.
③ Interrupt vector에서 IRQ(Interrupt Request) number를 이용하여 ISR(Interrupt Service Routine) 주소 정보를 받아온다.
④ ISR로 점프하여 루틴을 수행한다.
⑤ 저장해놨던 일로 돌아와서 다시 수행한다.

<Interrupt Timeline>

OS Design & Implementation

  • User Goals : 사용하기 편리, 배우기 쉬움, 안정적, 안전, 빨라야 함
  • System Goals : 설계, 구현, 유지, 보수가 쉽고 안정적, 오류 x, 효율적이어야 함

OS Design에서 중요한 정책!
-> Policy와 Mechanism을 구별함

① Policy
-> 뭘 수행할까? (머리) ex) 어떤 반찬을 집을 지 고민

② Mechanism
-> 어떻게 할까? (몸) ex) 입에 넣고 씹음

profile
인하대학교 컴퓨터공학과 학생입니다😀

0개의 댓글