학교 공부/OS

    운영 체제 (Operating System) - 운영체제 구조 (2)

    1. OS설계 이전 시간에는 기존의 운영체제에 어떠한 문제점이 있었고, 그 문제점을 해결하기 위해서 운영체제의 구조가 어떻게 발전해왔는지 알아봤다. 이번 시간에는 그 운영체제의 구조가 어떠한 원칙을 바탕으로 구현되는지 알아보자. 운영체제 설계는 두가지 관점에서 볼 수 있다. Policy-(무엇)이 되게할 것인지? / Mechanism-무엇을 (어떻게) 할 것인지이렇게 2가지 관점으로 분리하면서 운영체제 설계를 모듈화할 수 있다. 그렇다면 이제부터 OS 설계 방식에 대해서 알아보자. 2. Layering 레이어링은 운영체제의 구조를 가상의 레이어로 나눔으로써 운영체제 설계의 복잡도를 낮추는 방식이다. 각 레이어는 잘 정의된 함수들로 이루어 졌는데, 하나의 레이어는 인접한 레이어와만 통신하도록 제한함으로써 ..

    운영 체제 (Operating System) - 운영체제 구조

    1. 컴퓨터의 기원과 발전 기계적인 스위치를 이용하여 1bit 단위로 컴퓨터에 입력하던 Hand-operated system를 시작으로 1950년도 부터 컴퓨터는 급속도로 발전하였다. 이 과정에서 '효율성'과 '성능'을 끌어올리기 위한 다양한 시도가 있었는데, 과거의 성능 향상을 저지하는 이슈와 그 이슈를 해결한 방식에 대해서 알아보자. 2. Batch system(Automatic job sequence, Spooling) 주어진 job을 일괄 처리하는 형태이다. 즉, 결과를 받기 까지 User Interaction이 불가능하고, 다른 Job으로의 스위칭이 불가능한 형태이다. 이 시대때는 Punch card로 코딩하고, 그것을 기계가 읽어, 연산하는 방식이었는데, 이러한 기계적인 I/O 장치와 전기 장..

    운영 체제 (Operating System) - 개요

    1. 운영체제의 정의와 필요성 운영체제의 역할은 무엇일까? 운영체제는 Abstraction과 Policy를 제공하는 역할을 한다. Abstraction은 하드웨어를 손쉽게, 효율적으로 사용할 수 있는 '추상화'이다. 가령 복잡한 전기적 신호를 이용하는 CPU를 C와 같은 High-level language로 구현된 Process를 이용해 손쉽게 사용한다던지, 복잡한 Memory를 Address Space로 쉽게 관리하는 것이 이 Abstraction의 예시이다. 이 예시를 한번 자세히 살펴보자. 프로그램은 바이너리 형태로 작성된 명령어의 모음이다. 이 명령어의 모음이 HW에서 실행되어야 하는데, HW가 각 프로그램을 구분하고, 인식 및 실행하여 자원을 독립적으로 공유해주어야 한다. 이를 위해 Proces..