• [운영체제] What is operating system?

    2021. 3. 19.

    by. KimBangg

     

    1. 운영체제 서비스들

    오퍼레이팅 시스템[운영체제]는 프로그램을 실행 할 수 있는 환경을 제공한다.

     

    1-1 ) User Interface

    : CLI(=cmd, shell,terminal etc), GUL, Touch Screen

     

    1-2) Program Execution

    OS는 프로그램을 메모리에 적재(Ready)시키고, 프로그램을 시작,(Running) 종료해야한다. (정상 or 비정상)

     

    1-3) I/O Operation

    입출력과 관련된 실행은 유저가 직접 통제하는 것이 아니라 운영체제가 관리한다.

     

    1-4) File system & manipulation

    운영체제는 파일을 읽고, 쓰고, 지우고, 삭제 할 수 있어야한다.

     

    1-5) Communications

    프로세스간의 의사소통은 shared memory or message passing을 통해 이루어진다.

     

    1-6) Error detection

     

    1-7) Resource allocation

    운영체제는 자원들을 스케줄링 알고리즘을 통해 관리 및 할당하는 역할을한다.

     

     

    2. System Call ( interrupt , trap )

    시스템 콜은 운영체제에 의해 만들어진 서비스에 대한 인터페이스를 제공하는 역할을한다.

     

    * 시스템콜을 위해 패러미터를 OS에게 전달하는방법

    1) Simplest

    레지스터에 각각의 페러미터를 전달

     

    2)

    블록이나 테이블형태로 저장되어있는 페러미터들을 레지스터에게 전달

     

    3)

    스택형태로 유지되어있는 패러미터를 푸쉬나 팝오프(Popoff)함으로써 Pass

     

    2-1) API ( Application Programming Interface )

    응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

     

    2--1-1 ) 프로그래머가 시스템콜보다 API를 선호하는 이유

    1. 다른 OS 및 컴퓨터로 이동이 쉽다

    2. 시스템 콜은 너무 세부적이고 사용하기 어려운 반면, API는 사용이 쉽고 결과 값만 정확하게 알고 사용하면된다.

    ( Example : RTE , Printf() in C )

     

    3) 시스템 프로그램 ( System programs )

    시스템 프로그램은 프로그램의 실행 및 생성을 위한 환경을 제공

    운영체제의 대부분의 유저관점은 시스템 프로그램에 의해 제공

     

    3-1) Policy vs Mechanism (in System Program Implementation & Design)

     

    (1) Policy (정책) => What will be done? [ 다음에 무엇을 해야할지?]

     

    (2) Mechanism => How to do it? [ 어떻게 그것을 수행하는지?]

     

     

     

    5. Linker & Loader

     

    대표사진 삭제

    사진 설명을 입력하세요.

    6. 운영체제의 디자인과 실행

     

    6-1) 디자인 목적

    디자인의 목적은 사용자( 일반유저 / 개발자 ) / 시스템의 관점에 따라 다르게 정의 될 수 있기 때문에, 명확한 값을 제공 할 수 없다.

     

    6-2) Mechanism & Policy

     

    Mechanism

    작업을 어떻게 수행할지? => 해결하기 위한 방법(how) 에 대한 명시

     

    Policy

    어떤 작업이 이루어져야 하는지? => 이루어져야 할 작업에 대한 명시

     

    6-3) Implementation ( 실행 )

    1) higher lever language( C, C++ .. )

     

    장점)

    작성의 편리함, 수정하기 용이함, 가독성이 좋아 디버깅이 편함.

     

    단점 )

    속도가 줄고 저장공간을 많이 요구한다.

    => 하지만, 최근 컴퓨터에서 큰 문제로 남아있지는 않다.

     

    실질적으로 운영체제의 성능에 영향을 주는 것은 데이터구조와 알고리즘이다.

     

     

     

    6 . 운영체제의 구조

     

    1) Monolithic Structure

     

    실행과 확장이 어려운 반면 강한 장점이 존재하지 않는다.

     

     

     

    2) Layered Approach

    운영체제는 몇개의 층으로 나누어져 구성 되어있다.

    Hardward : 0 // User : N;

     

    1. 장점

    설계와 디버깅을 하기가 쉽다.

    디자인과 실행이 간편화 되어있다.

    각층은 가장 낮은 (hardware) 층들의 명령을 통해서만 움직인다. => 관리가 용이

     

    2. 단점

    각층의 구분점을 설정 & 정의하기가 어렵다.

     

     

    대표사진 삭제

    사진 설명을 입력하세요.

     

     

    댓글