ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [운영체제] 2. 운영체제의 역할
    CS/운영체제 2023. 3. 14. 22:53

    Input / Output

     

    Cpu가 컴퓨터 device를 처리하는 방식에는 두 가지 방식이 있습니다.

    1. Software - polling synchronous

    cpu가 device에게 작업을 시킨 후에 작업이 끝났는지 지속적으로 확인합니다.

    간단한 장난감같은 system에 사용됩니다. 이 작업을 할 동안 cpu는 기다리고 있습니다.

     

    2. Interrupt-based asynchronous

    device마다 processor가 존재하여 cpu가 작업을 주면 device의 프로세서가 작업을 비동기적으로 진행합니다.

    이 때 cpu는 상태 레지스터를 보고 제어 레지스터에 명령어를 주게 됩니다.

    device에서 작업이 끝나면 작업이 끝났다는 interrupt 신호를 cpu에게 보내게 됩니다.

    cpu 레지스터를 저장해놓는 것으로 기존 상태로 돌아갈 수 있습니다.

    비동기적으로 작업을 할 수 있기 때문에 효율적입니다.

     

     

     

    I / O 장치에서 메모리 접근이 필요할 때, 메모리의 데이터는 cpu를 통해 device로 전달되어야 합니다. 하지만 cpu를 경유해서 데이터가 지나가게 되면 시간적인 비용이 들어갑니다.

    DMA(Direct Memory Access)를 사용하여 I/O 장치에서 메모리로 직접 접근하면 cpu를 경유하지 않을 수 있습니다.

     

     

     

     

     

     

     

    Storage Structures

    캐시는 속도가 매우 빠른 레지스터와 속도가 느린 메인 메모리 사이의 속도 차이를 줄여주기 위한 저장공간입니다.

    하지만 개념적으로도 사용합니다. 크기(속도)차이가 나는 두 메모리 사이의 메모리를 캐시라고 말할 수도 있습니다.

     

    Locality of Reference

    지역성의 원리란, 자주 참조되는 데이터에 대한 판단 기준입니다.


    Protection

    Application 레벨에서 프로세스가 죽게 되면 큰 문제가 되지 않습니다. 하지만 OS레벨에서 죽게 된다면 전체 컴퓨터 시스템에 영향을 줄 수 있기 때문에 위험합니다. 따라서 OS 레벨에서는 최대한 프로세스를 죽이려고 하지 않습니다.

    이를 user mode와 kernel mode로 나눠서 Protection을 적용합니다.


    Process & Memory Management

    OS는 프로세스와 메모리에 대한 관리를 합니다.

     

    Process

    프로세스는 프로그램이 아니며, 실행중인 프로그램의 하나의 인스턴스라고 할 수 있습니다.

    프로세스의 영역은 Text, Data, Bss, Stack의 4가지 segment로 나뉩니다. 이 중 Stack은 런타임에 나타나게 됩니다.

     

     

     

    Memory

    우리는 C언어 프로그래밍을 할 때, 동적으로 메모리 공간을 할당하는 용도로 malloc함수를 사용합니다.

    이를 사용할 땐 free를 통해 메모리 해제를 반드시 해주어야 합니다. 그렇지 않으면 언젠가 메모리가 가득 차게 되어 알수 없는 이유로 컴퓨터가 죽을 수도 있습니다.

     

    보통 constructor을 통해 메모리를 할당해주고, destructor를 통해 메모리를 해제합니다. 

    destructor(파괴자)를 구현하는 습관을 들이도록 합시다.

     

    OS는 메모리에 두 가지 형태로 관여합니다.

    • Mechanics(하부) : 메모리의 사용을 추적하고, 메모리 공간을 보호하고, 메모리 할당&해제를 관리합니다. 실제 움직임에 관한 내용입니다.
    • Policies(정책) : 언제 메모리를 해제할 것인지, 얼마나 메모리를 할당하고 해제할 것인지에 대한 정책입니다.

    System Calls

    system call을 사용하여 hw를 다룰 수 있습니다.

    모든 운영체제의 기본인 Unix 운영체제는 모든 것이 file로 구성되어 있습니다. 심지어 device도 file로 되어있습니다.

    file을 create/open/read/write/close/delete하는 것 처럼 device또한 request/read/write/release의 비슷한 원리로 작동합니다.

    이는 unix운영체제의 한 가지 특징으로 운영체제가 device를 file처럼 보이게 해줍니다.

     

    Unix 운영체제의 다른 한 가지 특징은 pipe입니다. pipe를 통해 프로세스를 전달하여 동시에 처리할 수 있습니다.

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

    [운영체제] 1. OS 와 Process  (0) 2023.03.07

    댓글

Designed by Tistory.