운영체제

학습목표

  • 1,2장 : 운영체제
    • 운영체제란 무엇인지
    • 운영체제는 무슨일을 하는지
    • 어떻게 설계되고. 구축되는지
    • 전반적인 설명위주, 구체적인 구현에 대한 내용은 없음
  • 3-5장 : 프로세스 관리
    • 프로세스 개념
      • 프로세스 : 시스템의 작업의 단위
    • 병행성?
      • 시스템은 병행하게 실행되는 프로세스의 집합으로 구성됨
      • 일부는 시스템 코드를 실행하고, 나머지는 사용자 코드를 실행한다.
    • 프로세스의 스케쥴링, 프로세스간 통신을 위한 방법들을 설명한다.
    • 다중코어 시스템..
  • 6-8장 : 프로세스 동기화
    • 프로세스 동기화 및 교착상태 처리방법
  • 9-10장 : 메모리 관리
    • 프로세스가 실행되는 동안, 메인 메모리를 어떻게 관리할 것인가.
    • 컴퓨터는 많은 프로세스를 메모리에 유지해야함.
      • CPU을 효율적으로 활용 할 수 있다.
      • 사용자에게 빠른 응답을 보장 할 수 있다.
    • 이를 위한 많은 메모리 관리 기법과, 각각의 특장점을 알아본다
  • 11-12장 : 저장장치 관리
    • 운영체제가 대용량 저장장치와 입출력을 어떻게 처리하는지 설명함
    • I/O 시스템 설계, 인터페이스, 내부 시스템구조, 기능
    • 입출력장치의 성능문제 검토
      • 가장 느린 시스템 구성요소임
  • 13-15장 : 파일 시스템
    • 테이터와 프로그램을 온라인으로 저장, 접근하기위한 기법들
    • 저장장치 관리를 위한 내부 알고리즘 & 구조
    • 각 알고리즘별 장단점
  • 16-17장 : 보안 및 보호
    • 운영체제 내 프로세스들은 다른 프로세스의 활동으로 부터 보호 받아야함
      • 그러기위해 운영체제로 부터 적절한 인가를 획득한 프로세스만 자원들(파일, 메모리, CPU…)에 대한 연산이 가능하도록 보장해야함
    • 보호란, 프로그램, 프로세스, 또는 사용자들이 컴퓨터 시스템 자원에 대한 접근을 제어하기 위한 기법이다.
      • 제어를 지정할 방법
      • 이들을 강제하는 방법
      • 두가지를 제공해야함.
    • 보안 : 인가되지 않은 접근, 악의적 파괴, 비 일관성의 우연한 도입? 으로부터 시스템에 저장된 정보(데이터, 코드)의 일관성과 시스템의 물리 자원들을 보호한다.
  • 18-19 : 가상머시느 분산/네트워크 시스템
    • 18장 : 가상화를 가능하게 하는 하드웨어 및 소프트웨어 기술에 대한 설명
    • 19장 : 인터넷과 TCP/IP로 설명하는 분산 시스템

기타 자료

  • 이미지 자료 : https://bcs.wiley.com/he-bcs/Books?action=resource&bcsId=11228&itemId=1119320917&resourceId=44609

1장. 서론

1,2장 : 운영체제

  • 운영체제란 무엇인지
  • 운영체제는 무슨일을 하는지
  • 어떻게 설계되고. 구축되는지
  • 전반적인 설명위주, 구체적인 구현에 대한 내용은 없음

1장의 목표

  • 컴퓨터 시스템의 구성과, 인터럽트의 역할을 기술한다.
  • 현대 다중 처리기 컴퓨터 시스템의 구성요소에 관해 기술
  • 사용자 모드에서 커널모드로의 전환을 설명
  • 다양한 컴퓨팅 환경에서 운영체제가 어떻게 쓰이는지 예 설명
  • 무료 운영체제의 예 설명

운영체제

  • 목적 :
    • 하드웨어를 관리하는 소프트웨어
    • 하드웨어(cpu, 메모리 등) 을 프로그램에 할당하는 역할.

What Operating Systems Do

nComputer-System Organization

nComputer-System Architecture

nOperating-System Structure

nOperating-System Operations

nProcess Management

nMemory Management

nStorage Management

nProtection and Security

nKernel Data Structures

nComputing Environments

nOpen-Source Operating Systems

1.1 운영체제가 할 일

  • 사용자 관점
  • 시스템 관점
  • 그래서, 운영체제란?

1.2 컴퓨터 시스템의 구성

  1. 인터럽트
    1. 인터럽트의 개요
    2. 인터럽트의 구현
  2. 저장장치의 구조
    • 램.
    • 레지스터
    • NVM, HDD
  3. 입출력 구조

1.3 컴퓨터 시스템 구조 (1-2 일반적인 구조 + 범용 처리기 수에 따른 분류)

  1. 단일 처리기
  2. 다중 처리기
  3. 클러스터형 시스템

1.4 운영체제의 작동 방식

  • 부트 스트랩 -> 시스템 데몬 실행….
  1. 다중 프로그래밍과 다중 태스킹에 대한 설명
    • 다중 태스킹
      • 빠른 스위칭으로 인한 빠른 응답시간
      • 여러 프로세스를 메모리에 유지하기위해서 -> 메모리 관리 방식이 필요해짐(9, 10장)
      • 어떤 프로세스로 전환할까? -> CPU 스케쥴링이 필요해짐(5장)
  2. 이중모드와 다중모드 운용
    1. 사용자 모드와 커널모드가 왜 필요한지
    2. 이를 어떻게 구현했는지( 하드웨어의 모드 비트를 통함)
    3. 권한 없는 요청이 들어왔을때 어떻게 동작하는지 상세한 설명
  3. 타이머
    • 사용자 프로그램이 무한루프 등에 빠질 경우를 위한 해결책
    • 무한루프에 빠지게되면, 제어가 운영체제에 넘어가지 않는 이슈가 생길 수 있다.

1.5 자원 관리 (책 내용의 대부분을 차지함.)

  1. 프로세스 관리(라고 쓰고, cpu 관리라고 읽는듯?)

    • 프로세스는 자기업무 수행을 위해 cpu 시간, 메모리, 파일, I/O 장치 등 여러 자원 을 필요로 하고, 때론 input data도 필요한다. 그리고 프로세스가 종료되면 운영체제는 재사용 가능한 자원을 회수한다.
    • 프로세스는, 프로그램(디스크에 저장된 파일, 수동적)과 달리 다음에 수행할 명령을 지정하는 프로그램 카운터(program counter)을 가진 능동적 개체이다. 또한 프로세스의 수행은 순차적이다.
    • 시스템은 프로세스의 집합으로 구성된다.
      • 운영체제 프로세스(시스템 코드 수행) + 사용자 프로세스(사용자 코드를 수행)
    • 운영체제는 프로세스에 관한 다음 활동들의 책임을 진다.
      • 프로세스 생성과 제거 , 일시중지와 재수행
      • CPU에 프로세스+ 스레드 스케쥴
      • 프로세스 동기화 기법 제공
      • 프로세스 통신 기법 제공
  2. 메모리 관리

1장 내용은… 이 내용들은 나중에 다시 봐야할것 같다.

1.6 보안과 보호

1.7 가상화

1.8 분산시스템

1.9 커널의 자료구조

  • 리스트

  • 트리

  • 비트맵

1.10 계산환경