ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Chapter 1: Introduction
    os 2020. 9. 18. 21:06

    Operarting System은 무엇인가?

    사용자와 하드웨어 사이를 이어주는 중개인 역할을 한다.

     

    Operarting System의 목표

    • 사용자의 program 실행과 사용자 문제를 더 쉽게 풀기위해
    • 컴퓨터 시스템을 더 쉽게 사용하기 위해
    • 효율적으로 컴퓨터 하드웨어를 사용한다. 

    Computer Systen Structure

     

    Operating Systen Definition(정의)

    OS는 resource allocator이다

    • 모든 resourse(자원)을 관리한다
    • 효율적이고, 공정한 resourse 사용을 위해 상충되는 요청 사이에서 결정한다

    OS는 control program이다.

    • 오류 및 부적절한 컴퓨터 사용을 방지하기 위해 실행을 control한다.

    OS의 정의

    • 하나의 정의로 설명되지 않는다
    • 컴퓨터에서 항상 실행되는 프로그램은 kernel이다.

    Computer Startup(컴퓨터를 시작할때)

    bootstrap program은 재부팅 또는 전원 킬때, load되어진다.

    • Rom 또는 EPROM에 저정되며, 보통 firmware(펌웨어)로 알려져 있다.
    • 시스템의 모든 것을 초기화 한다.
    • 운영체제 커널 로드 및 실행을 시작한다.

    Computer System Organization

    • 여러개의 CPU와 장치 컨트롤러(Device controllers)로 구성되어 있다. 그리고 이들은 공용버스(common bus)로 이여서, 메모리를 공유한다.
    • 메모리의 주기를 두고 CPU와 디바이스를 동시에 실행한다.
    • 입출력 장치와 CPU는 동시에 실행될 수 있다. 
    • Device controller가 CPU에 interrupt를 발생시켜 작업을 완료했음을 알린다.

    Common Functions of Interrupts

    • interrupt는 모든 service routine의 모든 주소를 포함한 interrupt vector(공간)를 통해서 interrupt service routine으로 제어 권한을 이전한다.
    • interrupt architecture는 인터럽트된 명령의 주소를 반드시 저장해야 한다.
    • trap과 exception은 에러 혹은 유저 요청에 의한 소프트웨어 생성 interrupt이다.
    • Operating System은 interrupts driven이다.

    Interrupt Handling

    • OS는 storing registers와 program counter 저장하여 CPU의 상태를 유지한다.
    • 발생한 interrupt의 유형은 2가지 이다
      • polling : 주기적으로 이벤트를 감시 처리 루틴을 실행한다.
      • vectored interrupt system

    I/O Structure

    • I/O 시작한 후, I/O의 완료를 기다리지 않고, control이 user program으로 돌아간다.
      • System call: 사용자가 I/O 완료를 기다릴 수 있게 OS에게 요청하는 것
      • Device-status table: 각 I/O 장치의 유형, 주소 및 상태를 나타내는 항목이 포함되있다.
      • I/O 장치 테이블로 OS indexes를 전송하여 장치의 상태를 확인하고 interrupt를 포함하도록 테이블 항목을 수정한다.
    • I/O 시작한 후, I/O의 완료를 기다리고, control이 user program으로 돌아간다.
      • 다음 intrrupt까지 CPU는 명령 대기 유효 상태가 된다
      • Wait loop
      •  

    Storage Structure

    • Main Memory: CPU가 직접 접근할 수 있는 유일한 대용량 저장 장치이다.
    • Random access: 메모리의 주소만으로 즉시 기억 데이터를 읽어낼 수 있는  호출 방식
    • 휘발성(전원이 내려가면 메모리의 데이터가 사라진다.)

    저장 장치에서 중요한 3가지

    • Speed
    • Cost
    • Volatility(변동성)

    Cashing: 정보를 더 빠르게 저장 시스템으로 복사, 주 메모리를 보조 저장장치를 위한 캐시로 볼 수 있다.

    • Device Driver: I/O를 관리할 각 장치 컨트롤러, 컨트롤러와 커널 사이를 균일한 인터페이스를 제공한다.

    Storage-Device Hierarchy


    Cashing

    • 컴퓨터의 여러 레벨에서 수행도는 중요한 원리
    • 사용 중인 정보가 저속 저장 장치-> 고속 저장 장치로 일시적으로 복사된다.

    Computer-System Architecture

    • 대부분은 시스템에는 특수한 목적을 가진 프로세스를 가진다.
    • 사용 및 중요성이 향상하는 Multiprocessors system
      • parallel system, tightly-coupled system이라고 불리기도 한다.
      • 이점으로
        • 처리량이 높아진다.
        • 속도가 높아진다
        • 신뢰성이 높다.
      • 2가지 타입
        • Asymmetric Mutipprocessing: 각 프로세스가 모든 작업을 한다(하나의 작업을 분산 시켜서 하는것)
        • symmetric Mutipprocessing: 하나의 프로세스가 다른 프로세스와 주/종관계로써 종 프로세스가 주 프로세스의 명령을 처리한다.

    Clustered Systems

    • Multprocessor system 같지만, 여러 시스템과 함께 일하는 것이다.
      • 보통 공유하는 저장 공간이 SAN(storage-area network)을 경유한다.
      • 실패를 극복하기 위해 high-availability service를 제공한다.
        • Asymmetric clustering은 하나의 장비를 상시 대기 모드(Hot-standby mode)로 작동
        • symmetric clustering은 두개 이상의 노드가 작업을 수행하는 동시에 다른 노드들을 모니터링하는 구조다.
    • 몇몇 clusters는 high-performance computing (HPC)을 위한 것이다.
    • 일부에서는 DLM(Distributed Lock Manager)을 사용하여 충돌하는 작업을 방지함

    Operating System Structure

    • Multiprogramming(batch system)은 효율을 필요로 한다
      • user 한명이 CPU 및 I/O 장치를 항상 사용가능 상태로 유지 할 수 없다.
      • Multiprogramming은 작업(code 및 data)을 구성하여 CPU가 항상 실행되도록 한다.
      • 시스템의 전체 작업의 하위 집합은 메모리에 있다.
      • 한가지 작업을 job scheduling을 통하여 실행 또는 선택한다.
    • Timesharing(multitasking)
      • 프로세스마다 작업시간을 정해두고 번갈아가면서 작업하는 방식이다. 프로세스들이 빠르게 번갈아가며 메모리를 사용하면 사용자 입장에서는 마치 동시에 작동하는 것처럼 보이게 하는 것이다.
      • 반응시간이 1초 미만이다.
      • process: 사용자에게 메모리에서 실행 중인 프로그램이 하나 이상 있는 것
      • CPU scheduling: 여러 작업을 동사에 실행할 준비가 될 경우
      • 만약 프로세스가 메모리에 맞지 않으면, swapping이 프로세스를 안에서 밖으로 이동시켜 실행 시킨다.
      • Virtual memory를 통해서 메모리에 완전히 포함되지 않는 프로세스를 실행 시킬 수 있다.

    Operating-System Operations

    • interrupt driven(하드웨어와 소프트웨어)
      • 장치 하나에 의한 Hardware interrupt
      • Software interrupt(exception or trap)
        • 소프트웨어 에러(예로, 0나누기)
        • 운영체제 재요청
        • 다른 프로세스 문제, 무한 루프, 프로세스 or OS를 수정하는 프로세스

    Transition from User to Kernel Mode

    이러한 이중 모드(Dual-mode) 방식을 사용하면 나쁜 의도를 가진 사용자로부터 운영체제, 하드웨어를 비롯한 시스템과 사용자를 보호할 수 있다.

     

    Process Management

    • program은 수동적인 독립체이다. <-> process는 능동적인 독립체이다.
    • process는 일을 수행하는 데 리소스(자원)가 필요하다
      • CPU,Memory, I/O, file
      • Initalization data
    • 프로세스 종료하려면 재사용 가능한 리소스를 회수해야 한다.
    • 싱글-스레드 process는 프로그램이 어디까지 실행되었는지 북마크하는 program counter를 가지고 있다.
      • 프로세스는 작업 완료까지, 순차적으로 명령을 수행한다.
    • 멀티스레드 프로세스는 스레드 하나 당 1개의 program counter를 가진다.
    • 보통 시스템에는 많은 process, user, os가 CPU 1개 혹은 2개 이상에서 동시에 실행된다.
      • 프로세스/스레드 간에 CPU를 멀티플레싱하여 동시에 제공한다.

    Protection and Security

    • Protection
      • '보호'의 의미이다.
      • 출입 조차 할 수 없다는 의미
    • security
      • '보안'의 의미이다.
      • 출입은 가능하다 그러나 공격 혹은 외적인 친입을 막는다.

    Computing Environments – Client-Server

    • 클라이언트에게 서비스를 요청할 수 있는 인터페이스를 제공하는 컴퓨팅 서버 시스템(예: 데이터베이스)
    • 클라이언트가 파일을 저장하고 검색할 수 있는 인터페이스를 제공하는 파일 서버 시스템

    Computing Environments - Peer-to-Peer

    • 클라이언트와 서버를 구분하지 않음
    • P2P는 클라이언트와 서버를 구분하지 않음
    • 노드가 P2P 네트워크에 가입해야 함

    Computing Environments - Virtualization

    • Emulation: 소스 CPU type(or OS)이(가) 다를 때 사용하는 것이다.
    • Virtualization: CPU를 위해 기본OS를 컴파일하고, 게스트 OS를 실행되며 또한 기본적으로 컴파일을 한다.

    Computing Environments – Cloud Computing

    • Public cloud(많이 사용) – 사용자가 많은 cloud
    • Private cloud(개인적인) – 한 명의 사용자가 이용한다.
    • Hybrid cloud(pb,pv 섞었다): public과  private가 섞여있다.
    • Software as a Service (SaaS): 인터넷을 통하여 이용 가능한 1 or 그 이상의 응용 프로그램
    • Platform as a Service (PaaS): 인터넷을 통해 응용 프로그램을 사용할 수 있는 소프트웨어 스택
    • Infrastructure as a Service (IaaS): 인터넷을 통해 사용가능한 서버 or 저장공간

    Computing Environments – Real-Time(실시간) Embedded Systems

    • Embedded system: 특수한 목적을 위해 필요한 것만 넣은 시스템이다

    Open-Source Operating Systems

    • open-source
      • Linux, UNIX
    • closed source
      • window 10
    • copy left: open-source의 기반이 되는 저작권 표시이다.

    'os' 카테고리의 다른 글

    Chapter 8: Deadlocks  (0) 2020.10.26
    Chapter 6: Synchronization Tools  (0) 2020.10.16
    Chapter 2: Operating-System Structures  (0) 2020.10.11
    Chapter 5: CPU Scheduling  (0) 2020.09.28
    Chapter 3: Processes  (0) 2020.09.16

    댓글

Designed by Tistory.