ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3. 운영체제 구조
    운영체제 2018. 12. 12. 18:01

      사용자 OS 인터페이스

    CLI(Command Interpreter : 명령어 인터프리터), GUI(Graphical User Interface)


    CLI 

    - 커널 혹은 시스템 프로그램에 의해 구현

    - 다중 Command Interpreter는 Shell로 알려짐

    - 주요 기능 : 사용자로부터 명령을 받고 실행

    ex) 맥북에서 터미널 실행해서 명령어 실행 (Windows는 cmd)


    GUI

    - 데스크탑에서 마우스로 상호작용 하는 것

    - user-friendly desktop metaphor interface



    많은 시스템이 CLI와 GUI둘다 포함한다.

    ex) MS Windows의 GUI(바탕화면), CLI(Command Shell)



      System Call과 API

    System Call 
    - OS가 제공하는 서비스에 대한 프로그래밍 Interface
    - 응용 프로그램의 요청에 따라 커널에 접근하기 위한 Interface

    API(Application Programming Interface)
    - 응용 프로그램 프로그래머가 사용할 수 있는 일련의 함수
    - 한 세트의 API는 일반적으로 OS상단의 미들웨어 계층에 의해 제공
    - 대부분의 응용 프로그램은 high level의 API를 사용하지만, System Call을 직접 사용하진 
    않는다.
    - 그 이유는? 
    1. 호환성 - 프로그래머는 자신의 프로그램이 동일한 API를 지원하는 모든 시스템에서 컴파일하고            실행될 것을 기대한다.
    2. Information hiding - 실제 System Call은 API보다 더 상세하고 어렵다.

    user mode에서 printf로 stdio(Standard C Library) 호출

    -> 라이브러리(API)에서 System Call인 write() 호출

    -> 커널은 write() 실행하고, 다시 user mode로 돌아와 그 다음단계 진행


    //참고로 API처럼 운영체제와 응용프로그램 사이를 연결시켜주는 소프트웨어를 

     미들웨어(Middle Ware)라고 한다.



      System Program

    - 프로그램 개발과 실행을 위한 편리한 환경을 제공.
        • 파일 관리     ex)탐색기
        • 상태 정보
        • 프로그래밍 언어 지원     ex) 컴파일러, 어셈블러, 인터프리터
        • 프로그램 적재(load)와 실행(execute)     ex) 디버거
        • 통신     

    - 시스템 프로그램은 System Call이나 어셈블리 언어로 개발한다.



      운영체제 구조


    1. Monolithic (단순 구조) 
    - 모듈로 나눠지지 않는다.
    - 인터페이스와 기능 수준이 잘 구분되어있지 않다.
    - ex) MS-DOS

    2. Layered Approach (계층적 접근)
    - 운영체제를 여러 계층으로 나누는 방식
    - 상위 계층은 하위 계층의 인터페이스를 이용
    - 최하위 계층 : 하드웨어.     최상위 계층 : 유저 인터페이스
    - 장점 : 인터페이스만 유지하면, 하위계층은 상위계층과 무관하게 수정이 가능하다.
    - 단점 : 근데 계층구분이 어렵다.

    3. Microkernel
    - 커널에 꼭 필요한 기능만 가지도록 구성된 커널
    - 장점 : 확장이 용이, 높은 안정성, 높은 신뢰성, 높은 이식성...

    4. Module





      Virtual Machine (가상 기계)

    - 프로세스가 마치 자신만의 프로세서와 메모리를 가지고 있는 것처럼 생각하도록 설계
    - 모든 프로세스는 컴퓨터의 복사본이 제공.




      System Boot

    Booting
    - 커널을 load해 컴퓨터를 시작하는 절차

    Bootstrap program(또는 Boot loader, BIOS)
    - 부팅을 도와주는 프로그램
    - Step 1 : 진단을 실행하여 시스템 상태 확인 
    - Step 2: 커널을 찾아 주 메모리에 로드, 실행을 시작한다.

    2단계 부팅 프로세스
    - Step 1 : Bootstrap Program
    (진단 실행 -> 부트블록 load (block no. 0) -> 부트블록 코드 실행)
    - Step 2 : 부팅블록 코드는 전체 운영체제를 메모리에 로드하고 실행


    반응형

    '운영체제' 카테고리의 다른 글

    5. 파일 시스템  (0) 2018.12.13
    4.1 Disk Scheduling  (0) 2018.12.12
    4. Disk 구조  (0) 2018.12.12
    2. 운영체제 운용 기법  (0) 2018.09.26
    1. 운영체제(Operating System)란?  (1) 2018.09.26

    댓글

Designed by Tistory.