ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [운영체제] 2. OperatingSystem Structures 운영체제 구조
    Computer Science/OS 2022. 9. 22. 23:29
    728x90

    1장 복습)

    운영체제의 기본 기능 : CPU 스케줄링, 메모리 관리, 파일 관리, 입출력 관리

    * CPU 스케줄링 :메인 메모리에 적재된 여러 프로그램 중 하나의 프로그램 선택하여 실행하는 것


    운영체제가 제공하는 서비스 (Operating System Services)

    • 사용자 인터페이스(User Interface) : CLI, GUI, Batch
    • 프로그램 실행 (Program execution)
    • 입출력 연산 (I/O operations)
    • 파일 시스템 조작 (File-System manipulation)
    • 통신 (Communications) : 방법) 공유 메모리, 메시지 패싱
    • 에러 검출 (Error detection) : CPU, 메모리, IO장치, 사용자 프로그램에서의 오류에 대한 OS의 적절한 조치 및 디버깅
    • 자원 할당 (Resource allocation)
    • 보호 및 보안 (Protection and security) : 적법한 자원 접근 허용. 바이러스, 웜 및 외부 침입 방지

     

    사용자와 운영체제간 인터페이스 (User Operating System Interface)

    • CLI(Command Line Interface)
    • GUI(Graphical User Interface)
    • Touchscreen Interface

    시스템 콜 (System Calls)

    OS가 제공하는 서비스에 대한 프로그래밍 인터페이스. (표준 C, C++ 라이브러리 사용)

    System Calls은 응용프로그램이 운영체제와 통신하기 위한 방법.

    사용자 프로세스 응용프로그램이 직접 메모리 접근 X

    system call을 통해 User mode에서 kernel 모드로 전환 OS의 처리하에 안전하게 운영체제 제공 서비스 처리 가능

     

    사용자 프로그램이 직접 system call을 사용하는 것은 아님.

    표준 C 라이브러리 통해서 시스템 콜 인터페이스 사용 (C 컴파일러가 해당 운영체제의 system call로 변환)

    ex. printf() -> 컴파일 -> IO system call 변환

     

    시스템 콜을 사용하는 방법 (API-System Call - OS relationship)

    system call은 일종의 SW 인터럽트 방식으로 수행한다.

    표준 C 라이브러리의 open() 함수 사용 -> kernel mode로 변경

    -> open()에 해당하는 ISR 수행 -> 수행 결과 반환 -> User mode로 변경

    System Programs - Utility

    연관된 여러 시스템 호출을 사용하여 고급 서비스 제공 프로그램 (시스템 콜보다 사용이 편리)

    자주 사용하는 시스템 서비스를 제공하는 시스템 프로그램을 이용하는 것이 편리하다.

     

    운영체제 설계 및 구현 (OS Design and Implementation)

    OS는 HW 유형에 따라 달라진다.

    • 하드웨어의 선택 : 대형 시스템, 소형 모바일 시스템
    • 시스템 유형 : 싱글 유저, 멀티유저, 실시간 시스템

    운영체제의 개인 사용자 목적, 시스템의 목적

    • OS 사용자 목적 : 사용하기 편리, 배우기 쉬움, 신뢰성, 안전, 빠른 속도
    • OS 시스템 목적 : 설계 및 구현의 편리, 유지보수 용이, 융통성 (기능 추가 및 변화에 용이), 신뢰성, 효율성

    OS 설계 구현에서의 중요 분리 원칙

    • Policy (정책) : 보다 상위 레벨, 무엇을 할지.
    • Mechanism (매커니즘) : 어떻게 구현할 것인지.

    메커니즘과 정책을 분리하는 것은 중요한 원칙이다. 설계 정책이 변경되었을 때 융통성(flexibility)을 최대화시킨다.

     

    운영체제 구현 (OS Implementation)

    처음에는 어셈블리어로 구현 -> 최근에는 C, C++ 이용

    하드웨어 관련된 부분 -> 어셈블리어

    하드웨어 무관한 부분 -> C언어 (이식성 향상, 유지보수 용이)

     

    운영체제 구조 (Operating System Structure)

    범용 OS는 매우 큰 프로그램 -> 구조를 가진다.

    • 단순 구조 (Simple structure) - MS DOS
    • 하나의 큰 커널 존재 (One Big Kernel) -> 전통적 UNIX
    • 작은 커널 시스템 (Microkernel) - Mach

    단순구조 (Simple Structure) - MS DOS

    HW 제한적. 구조 단순

    MS-DOS : 메모리 작음. 최적화. 모듈화 X

    응용프로그램이 하드웨어 드라이브 직접 접근 가능. -> 속도 향상 -> 오류 발생 가능 (시스템 불안정 요인)

     

    Monolith Kernel - UNIX (전통적 UNIX)

    당시 HW 성능 제한되어 구조가 단순 -> 커널에 모든 기능 구현

    UNIX의 구성

    • System programs 시스템 프로그램
    • The kernel 모든 기능이 구현된 거대 커널

    커널이 매우 복잡

    • 한 레벨에서 모두 구현되어 효율적(동일 주소 공간 안에서 메시지 전달이 효율적)
    • 유지보수 및 기능 추가가 어렵다. (에러 수정 어려움)

     

    Microkernel System Structure (최근의 구조)

    • 사용자 구역(user space)으로 대부분 기능 이동 -> 커널 기능 최소화
    • OS 서비스는 기능별로 모듈화, 사용자 주소 공간에서 실행시킴
    • 커널은 하드웨어 종속 부분, 서버 프로세스 간 통신 등 단순 기능 담당
    • 사용자 모듈 간에 메시지 전송을 통해 통신 

    장점

    • 모듈 간 상호 의존성 낮음, 서비스 추가/삭제 용이
    • 기능 향상의 용이, 이식성, 신뢰성, 보안 향상

    단점

    • 사용자 공간과 커널 공간 간의 통신 오버헤드 발생

     

    Solaris Modular Approach

    운영체제 발생 (Operating System Generation) - SYSGEN

    운영체제는 다양한 하드웨어에서 실행되도록 디자인되었음.

    SYSGEN은 특정 하드웨어 구성에 맞추어 운영체제를 구성하고, 최적화하는 프로그램

    -> OS 설치 시에 사용됨

     

    SYSGEN : 다양한 하드웨어 구성에 맞춰 맞춤형 운영체제 만들어 설치하는 것


    <주요 용어 정리>

    1. 운영체제가 제공하는 서비스 나열하기

    • 사용자 인터페이스(User Interface)
    • 프로그램 실행 (Program execution)
    • 입출력 연산 (I/O operations)
    • 파일 시스템 조작 (File-System manipulation)
    • 통신 (Communications)
    • 에러 검출 (Error detection)
    • 자원 할당 (Resource allocation)
    • 보호 및 보안 (Protection and security)

    2. ____ provide an interface to the services made available by an operating system.

        ____는 운영 체제에서 사용할 수 있는 서비스에 대한 인터페이스를 제공합니다.

    => 시스템 콜 (system call)

     

    3. ____, also known as system utilities, provide a convenient environment for program development and execution.

        ____는 시스템 유틸리티라고도 하며, 프로그램 개발 및 실행을 위한 편리한 환경을 제공합니다.

    => 시스템 프로그램 (system program)

     

    4. One important principle is the separation of ____ from ____. ____ determine how to do something; ____ determine what will be done.

     한 가지 중요한 원칙은 ___와 __를 분리하는 것이다. ___는 어떤 일을 어떻게 할 것인지 결정하고, ___는 어떤 일을 할 것인지를 결정한다.

    => 메커니즘 (mechanism), 정책 (Policy)

     

    5. Mach used the ____ approach. This method structures the OS by removing all nonessential components from kernel and implementing them as system and user-level programs.

       Mach는 ____ 접근법을 사용했습니다. 이 방법은 커널에서 필수적이지 않은 모든 구성 요소를 제거하고 시스템 및 사용자 수준의 프로그램으로 구현함으로써 OS를 구성한다.

    => 마이크로 커널 (micro-kernel)

     

    6. An operating system must be configured or generated for each specific computer site, a process sometimes known as ____

       운영 체제는 각 특정 컴퓨터 사이트에 대해 구성되거나 생성되어야 합니다. 이 프로세스는 ___라고도 합니다.

    => SYSGEN

     

    728x90
    반응형

    댓글

Keydi's Tistory