5 minute read

운영체제란?

  • 사용자와 하드웨어간의 상호작용 위한 프로그램을 의미한다.
  • 운영체제의 목표
    • 사용자의 관점에서 : 프로그램을 동작시키고, 문제를 해결하기 쉽게 해준다.
    • 시스템의 관점에서 : 자원을 관리하고, 프로그램을 컨트롤한다.
  • 장점 및 효율
    • 컴퓨터 시스템을 편리하게 사용하게 한다.
    • 컴퓨터의 하드웨어를 효율적인 방법으로 사용하게 한다.

컴퓨터 시스템 구조

  • 컴퓨터 시스템은 크게 4가지 요소로 분할된다.
    • 하드웨어 : 컴퓨터의 기본적인 자원들을 의미한다.
      • ex) CPU, memory, I/O 장치들
    • 운영체제 : 프로그램이나 유저들과 하드웨어 사이에서 발생하는 동작을 컨트롤하고 조정(coordinate)한다.
    • 애플리케이션 프로그램 : 시스템 자원을 이용하여 사용자가 원하는 문제를 해결하도록 해주는 도구들이다.
    • 사용자 : 컴퓨터를 사용하는 사람, 컴퓨터를 사용해야하는 다른 기기, 컴퓨터들을 의미한다.

그렇다면 운영체제가 하는 일이 구체적으로 무엇인가?

  • 운영체제는 시스템 자원을 할당하는 역할을 한다.
    • 물리적인 자원 : CPU나 Memory, HDD 등 물리적으로 동작하는 모든것들을 관리한다.
    • 가장 자원 : 세그먼트, 페이지, 파일시스템, 통신프로토콜 등 실제로 눈에 보이지 않으나 사용되는 자원들도 관리한다.
    • 여러 프로그램들이 동시에 동작할때 자원에서 발생하는 conflict를 해결하기 위해 공평하고 동등하게 자원을 분배한다.
  • 운영체제는 프로그램을 컨트롤 하는 역할을 한다.
    • 프로그램이 동작할 때 발생하는 오류나 부적절한 동작에 대하여 관리하고 제어하는 역할을 한다.

컴퓨터 시스템의 구조와 동작

  • 컴퓨터는 CPU와 여러 디바이스 컨트롤러들이 하나의 메모리로부터 버스를 통해 연결된 것을 의미한다.
  • 사진
  • 모든 디바이스들은 디바이스 컨트롤러를 통하여 시스템에서 조작할 수 있고, 메모리는 버스를 통해 디바이스 컨트롤러로 전달된다.
  • 32비트체제와 64비트 체제는 어떻게 다를까?
    • 32비트 체제 : 메모리로 부터 읽을 수 있는 메모리 주소의 최대 크기가 2의 32승인 시스템이다.
    • 따라서 32 비트 체제에서 메모리 주소의 최대 값은 약 4GB가 된다,
    • 즉 32비트 체제의 컴퓨터에 꽂을 수 있는 램카드는 4GB가 최대 크기이다.
    • 64비트 체제 : 메모리로 부텅 읽을 수 있는 메모리 주소의 최대 크기가 2의 64승인 시스템이다.
    • 따라서 32 비트 체제에서 메모리 주소의 최대 값은 천문학적 크기가 된다.


  • 컴퓨터 시스템은 어떻게 동작하는가?
  • CPU와 메모리 사이에는 연산 속도의 차이를 제어하기 위한 완충공간으로 buffer를 사용한다,
  • I/O 디바이스는 크게 3가지로 구분된다.
    • Device : 실제로 동작이 이루어지는 기기
      • Block 단위 Device : Char의 모음(버퍼를 사용)
      • ex) 프린터기, 스케너 등
      • Char 단위 Devvice : Char 각각의 동작 - 비트 단위 (버퍼를 사용하지 않음)
      • ex) 마우스, 키보드 등
    • Deivce Controller : 각각의 디바이스에게 책임이 있으며, 디바이스를 컨트롤함
      • 디바이스 컨트롤러는 버퍼를 가질 수 있다.
      • 할일이 모두 끝나고 나면 interrupt를 방생시켜 CPU에세 지시를 요청한다.
    • Dvice Driver : Device Controller가 사용가능하게 하는 드라이버
      • ex) Logitech G hub, HP Printer Driver 등

Interrupt가 뭔가요?

  • Interrupt : 하드웨어에서 발생한 이벤트를 서비스의 주소가 포함된 인터럽터 백터로 운영체제에 전송하는 것을 의미한다.
    • 하드웨어와 OS사이의 상호작용은 Interrupt이다.
      • ex) 키보드로 alt + F4를 누르는 것은 Interrupt이다.
    • 소프트웨어와 OS사이의 상호작용은 Signal이다.
      • ex) os.sleep(10) 이라는 코드는 signal이다.
  • 하드웨어에서 나오는 모든 신호는 interrupt이며 우선순위를 가진다.
  • 우선순위에 따라 하나의 interrupt가 리 처리중일 때 우선순위가 낮은 interrupt는 발생하지 않는다.
  • ISR : Interrupt Service Rutine의 약자로 interrupt의 해석본이다.
  • IVT : Interrupt Vector Table의 약자로 각각의 interrupt의 포인터가 저장된 1차원 배열이다.
  • 동작되는 원리는 다음과 같다.
    1. 키보드로 정지신호 입력 (Ctrl + C 가 입력된 것으로 가정)
    2. IVT의 테이블에 포인터로 저장이된다. (2번 인덱스에 저장된것으로 가정)
    3. 포인터를 따라서 가서 어떤신호인지 ISR로 분석 (이 interrupt는 정지하라는 신호)
    4. ISR의 절차에 따라 Interrupt를 처리 (동작중이던 프로그램을 정지)
    5. 모든 처리가 끝나면 발생위치로 복귀(정지가 입력되었던 위치로 다시 이동)
  • 만약 일련의 처리 과정중 더 높은 순위의 Interrupt가 발생하면 처리를 중지하고 더 높은 interrupt를 처리


  • Interrupt는 크게 외부 interrupt와 내부 interrupt로 구분된다.
  • 외부 Interrupt : 비동기적으로 발생하며 외부 디바이스로 인해 발생한다.
    • ex) 키보드로 숫자를 입력, 프린터기의 정지 버튼 누르기
  • 내부 Interrupt : 동기적으로 발생하며 아래의 3가지로 방법으로 처리한다.
    • Fault : 현재 명령을 저장 -> ISR 제공 -> 다시 원래위치로 복귀 후 실행
      • ex) 아직 메모리로 페이지가 넘어오지 않은 상황 등
    • Trap : 현재 명령을 저장 -> ISR 제공 -> 원래 위치의 바로 다음줄로 복귀 후 실행
      • ex) 예외 상태로 지정된 Interrupt의 처리 등
    • Abort : ISR 제공 -> 모든 동작을 최소함
      • ex) 0으로 나누기를 한다 등 치명적인 상황


  • Interrupt를 어떻게 관리하는가?
  • 모든 interrupt는 동작 위치가 저장되어있어야함 - 처리 후 복귀하기 위하여
  • 발생한 Interrupt에 따라 다르게 판별하여 동작하는데, 동작 방식은 아래와 같다.
    • Vectored Interrupt System : CPU를 정지시키고 interrupt를 처리
      • 비유를 하자면, 피자를 주문하고 다른 곳에 갔다가 오는 행위와 유사함
    • Polling System : CPU가 처리되는 것을 그 자리에서 기다림
      • 아주 빠르게 처리되며 문맥교환이 발생하지 않는다.
      • CPU가 다른 동작을 하지 못하기 때문에 CPU자원의 낭비가 있다.
      • 비유를 하자면, 피자를 주문하고 그 자리에서 피자를 기다리는 행위와 유사함
      • 아주 빠른 I/O 디바이스나, 아주 짧은 서비스 루틴에 사용하면 좋다.
    • 위의 두 방법은 상황에 맞게 사용되어야 하며 주로, 더 빠른 방법을 사용하면 좋다.

Storage Structure - 저장공간

  • Main memory : CPU가 직접적으로 접근 가능한 큰 규모의 데이터 저장공간
  • Secondary storage : 메인 메모리를 확장시킨 데이터 저장공간
  • Magnetic disks : 금속이나 유리에 물리적으로 저장되어 있도록 하는 저장공간
  • Electronic disks : 전기적으로 저장되도록 하는 저장공간

저장공간의 평가 척도 4가지

  • 속도(speed), 가격(Cost), 크기(Size), 휘발성(Volatility)

OS의 구조적 특징

  • OS의 구조적 특징은 크게 두가지 정도있다.
  • Multiprogramming : 가능한 CPU가 쉬지 않도록 해야한다.(효율성)
    • I/O가 발생하면 낭비하는 시간이 있는데 이런 상황에서 OS가 해야할 작업을 교체해준다.
    • 바로 실행가능한 환경이 있어야 바로 교체가 가능하기 때문에 ready to excute 환경을 구축해야한다.
    • Job scheduler에 의해 해야할 작업의 순서를 정한다.
    • 가장 중요한 것은 Ready to Excute하기위해 동작이 필요한 작업이 메모리에 올라와 있어야 하는것 이다.
  • Timesharing : 가능한 모든 CPU가 공평하게 동작해도록 해야한다.(편의성)
    • 하나의 오래걸리는 작업이 CPU하나를 너무 오랫동안 점유하는 상황을 방지한다.
    • 하나의 CPU가 할당된 시간이 있으며 그 시간이 끝나면 다음 CPU화 Context Switching이 발생한다.
    • 자주 스위칭이 발생하면 Context Switching으로 인해 더 오랜 시간이 걸릴 수 있다.
    • 하지만 예를 들어 4개의 CPU가 있고, 5초의 작업 시간을 할당해준다면 4번째 CPU는 적어도 20초 안에 동작한다.
    • 따라서 공평하게 CPU간의 작업이 이루어지게 된다.

Process Management (프로세스 관리)

Program VS Process

  • Program : Storage에 존재 - 동작 중 변경이 불가능
  • Process : Memory에 존재 - 변형이 가능
  • CPU의 관리 대상 1순위는 Process이다.

Process 특징

  • 현재 실행중인 Program을 의미한다.
  • CPU, Memory, I/O, files 등의 자원이 필요하다,
  • 프로세스의 초기화에 사용될 초기데이터도 필요하다.
  • 자원을 필요로 하는만큼 사용한 자원의 반납도 잘 이루어지도록 해야한다.

Process Maagement가 해야하는 일

  1. 유저와 시스템이 사용하는 프로세스을 생성하고 지운다.
  2. 프로세스의 일시정지와 실행하도록 한다.
  3. 연관이 있는 프로세스끼리의 데이터는 동기화를 시켜야한다.
  4. 연관이 있는 프로세스끼리의 통신을 해야한다.
  5. 만약 교착상태(Dead Lock)이 발생한 프로세르를 관리한다.

Memory Management (메모리 관리)

  • Memory : 데이터 부분과 명령어 부분으로 나누어져있음
    • CPU의 관리대상 2순위
  • 필요로하는 메모리의 할당과 반납을 하도록 한다.
  • 메모리가 사용되는 모든 작업에서 누가, 언제, 얼마나 사용했는지 기록한다.

File Managemanet(파일 관리)

  • file : 실제 Storage에 존재하는 물리적인 존재
  • 실제하는 데이터를 관리하기 위해 Device Driver가 관리한다.
  • Why? : 파일마다 접근속도, 용량, 접근 방식 등이 다르기 때문

File System & Storage Management (파일 시스템, 저장공간 관리)

File System

  • 파일은 여러 디렉토리에 의해 구성되어있다.
  • 파일 시스템은 어떤 파일에 누가 접근 가능한지 결정한다.
  • 파일 시스템은 파일 생성, 삭제, 수정하는 기능을 가진다.

Storage Management

  • 사용가능한 유효 저장 공간 관리
  • 디스크 스케줄링

이번 포스팅의 핵심

  • OS가 하는일이 무엇인가?
    1. 프로세스를 관리함
    2. 메모리를 관리함
    3. 파일과 파일시스템을 관리함
    4. 저장공간을 관리함
    5. CPU가 항상 동작하도록 메모리에 실행할 프로그램을 올려놓음
    6. CPU가 공평하게 동작하도록 실행 시간을 지정해둠
    7. I/O디바이스들을 Interrupt를 통해 관리한다.
    8. 데이터나 프로세스의 순서가 꼬이지 않도록 스케줄링 한다.


😺 오타나 논리적 오류 지적은 언제든지 환영합니다!😺   

항상 읽어주셔서 감사합니다~ 🙏

Leave a comment