cozzin
코찐 기술 블로그
cozzin
전체 방문자
오늘
어제
  • 분류 전체보기
    • Kotlin
    • 백엔드
    • iOS
      • Swift
      • SwiftUI
      • Combine
      • Architecture
    • 개발환경
    • 세미나
    • 생각정리
    • 스터디
    • CS
      • Refactoring
      • OS

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • LinkedIn
  • 강의

공지사항

인기 글

태그

  • 워닝제거
  • 컴퓨터공학
  • ios
  • 리팩토링
  • SwiftUI
  • slide-over
  • CS
  • 테스트
  • multicast
  • os
  • 디자인패턴
  • 운영체제
  • darkmode
  • Warning
  • WWDC21
  • Combine
  • Swift
  • Ribs
  • WWDC
  • XCode

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
cozzin

코찐 기술 블로그

[OS] 3. 고등운영체제, 인터럽트 기반 운영체제:  최근의 고급운영체제, 인터럽트에 기반한 현대 운영체제
CS/OS

[OS] 3. 고등운영체제, 인터럽트 기반 운영체제: 최근의 고급운영체제, 인터럽트에 기반한 현대 운영체제

2021. 1. 21. 20:27
반응형

안녕하세요 코찐입니다.

이번에는 고등운영체제에 대한 수업을 듣고 정리하겠습니다.

http://www.kocw.net/home/search/kemView.do?kemId=978503 보면서 정리하고 있습니다.

 

학부내용에서는 중요한 내용은 아니지만, 운영체제가 앞으로 어떤 방향으로 전개될지 알아두면 좋다고 합니다.

대학원 수준에서 고등 운영체제 학습할 수 있습니다. 

 

0. 기본 폰 노이만 구조

 

1. 다중 프로세서 시스템 (Multiprocessor system)

  • CPU(Processor)가 여러개 있는 시스템
  • 병렬 시스템
  • 강 결합 시스템: 하나의 메모리에 CPU가 여러개 붙어있음

장점

1. 퍼포먼스: 일꾼이 여러명. 더 많은 일을 할 수 있음

2. 비용: 저렴한 CPU 여러개를 두는게 더 저렴

3. 신뢰성: 하나가 고장나더라도 다른 CPU가 여전히 동작

 

CPU가 많아졌기 때문에 OS도 달라져야 함 = 다중 프로세서 운영체제(Multiprocessor OS)

 

2. 분산 시스템 (Distributed system)

  • Multi computer system
  • 소 결합 시스템: loosely-coupled system
  • 서로간 메세지를 주고 받아야 함
  • 분산 운영체제가 필요함

장점: 퍼포먼스, 비용, 신뢰성. 다중 프로세서 시스템과 목적이 같음

 

 

3. 실시간 시스템 (realtime system)

  • 앞선 두 시스템이랑 목적이 다름
  • 시간 제약(deadline): 어떤 시간내에 계산이 반드시 끝나야 함
  • ex) 100 ms 안에는 계산이 끝나야 함. 그 시간이 지나서 계산되면 실패한 것으로 봄
  • 주로 공장 자동화에 사용됨: 컨베이어 벨트 위에 각 작업이 딜레이 되면 안됨
  • 패트리어트 미사일에 사용됨: 다른 미사일을 격추시켜야할 때 미사일이 도달전에 계산되어야 함
  • RTOS(Real-time OS)를 통해 운영됨

다른 주제 하나 더 배웁니다.

 

🛑 인터럽트 기반 시스템

  • 인터럽트: 가로채는 것
  • 현대 운영체제는 인터럽트 기반 시스템

 

1. 하드웨어 인터럽트

하드웨어 인터럽트 시스템 예시 

 

1. 전원 연결: CPU가 롬에 있는 부트로더 실행

2. 부팅: 부트로더가 하드디스크 뒤져서 OS를 메인메모리에 올림

3. 부팅이 끝나면: 운영체제는 메모리에 상주

4. 마우스를 움직이면 CPU로 인터럽트 신호가 감

5. CPU는 하던일을 중지하고 OS의 마우스 인터럽트 서비스 루틴을 찾아감

6. hwp파일위로 마우스를 더블클릭하면 CPU 인터럽트 신호가 감

7. CPU는 하던일을 중지하고 OS의 마우스 인터럽트 서비스 루틴을 찾아감

8. 하드 디스크를 뒤져서 hwp 프로그램을 찾아서 메모리에 올림

9. 화면에 한글 프로그램 화면이 나옴

10. 아무 동작도 안하면 OS는 대기중

 

키보드인 경우도 마찬가지

1. 타이핑하면 CPU로 전기신호(인터럽트)

2. CPU의 인터럽트 서비스를 찾아감

3. OS의 해당 루틴을 작동

 

2. 소프트웨어 인터럽트

  • 하드웨어 인터럽트만 있는게 아님
  • 전기 신호가 오지 않아도 내부적으로 인터럽트 발생시킬 수 있음
  • 어셈블리 명령어 SWI: 소프트웨어 인터럽트

앞선 한글 파일 예제 연장선에서

1. HWP 프로그램이 하드디스크 내용을 읽으려면 소프트웨어 인터럽트를 호출

2. OS가 하드디스크의 파일을 읽어옴

3. OS는 대기

 

3. 내부 인터럽트

ex) 5/0 을 하려고 하면

OS 안에는 divied by zero 상황이 일어나면 프로그램을 종료 시키는 코드가 있음

잘못된 시도를 한 프로그램을 강제로 종료시키도록 함 

 

iOS 에서는 이런 에러가 뜨는 것을 볼 수 있음...

*** Terminating app due to uncaught exception 'NSDecimalNumberDivideByZeroException', reason: 'NSDecimalNumber divide by zero exception'

 

정리

우리가 사용하는 OS는 전부 인터럽트 기반

평소에는 작동안하다가 인터럽트가 발생하면 작동

반응형
저작자표시

'CS > OS' 카테고리의 다른 글

[OS] 2. 운영체제 역사: 일괄처리부터 시분할시스템까지 운영체제 변천 역사  (0) 2021.01.19
[OS] 1. 운영체제 서론: 운영체제의 정의와 역할  (0) 2021.01.19
운영체제 스터디 자료  (0) 2021.01.04
    'CS/OS' 카테고리의 다른 글
    • [OS] 2. 운영체제 역사: 일괄처리부터 시분할시스템까지 운영체제 변천 역사
    • [OS] 1. 운영체제 서론: 운영체제의 정의와 역할
    • 운영체제 스터디 자료
    cozzin
    cozzin
    Software Engineer

    티스토리툴바