01. 운영체제 기본 개념

YeJi Kim·2023년 1월 10일
0

운영체제

목록 보기
1/7

운영체제

  • 개념: 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램

  • 운영체제는 프로그램이므로 메모리에 적재되어야 한다. 이때, 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 프로그램들에 필요한 자원을 할당하고 이들이 올바르게 실행되도록 돕는다.

    • 운영체제는 실행할 프로그램을 메모리에 적재하고, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원을 관리한다.
    • 공정하게 여러 프로그램에 CPU 자원을 할당한다.
    • 운영체제는 응용 프로그램에 자원을 효율적으로 배분하고, 실행할 프로그램들이 지켜야 할 규칙을 만들어 컴퓨터 시스템 전체를 관리한다.
  • 운영체제를 알아야 하는 이유

    • 운영체제가 없다면 아무리 간단한 프로그램이라도 하드웨어를 조작하는 코드를 개발자가 모두 직접 작성해야 한다. 운영체제가 하드웨어를 조작하고 관리하는 기능들을 제공하기 때문에 개발자는 하드웨어를 조작하는 코드를 직접 작성할 필요 없이 운영체제의 도움을 받아 간편하게 개발 가능하다.
    • 운영체제는 우리의 프로그램이 하드웨어 상에서 어떻게 동작하는지를 우리보다 더 자세히 알고 있다.
    • 운영체제는 현재 하드웨어 위에서 동작 중인 프로그램의 상태를 상세히 알려줄 수 있고, 이를 통해 우리는 문제 해결의 실마리를 찾을 수 있다.

  • 운영체제의 심장, 커널

    • 커널: 운영체제의 핵심 서비스를 담당하는 부분
      • 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능이 바로 운영체제의 핵심 서비스라고 할 수 있다.
      • 운영체제는 응용 프로그램들이 자원에 접근하려고 할 때 오직 자신을 통해서 접근하도록 하여 자원을 보호한다. 이중 모드 란 CPU가 명령어를 실행하는 모드를 크게 '사용자 모드'와 '커널 모드'로 구분하는 방식이다.
        • 사용자 모드: 운영체제 서비스를 제공받을 수 없는 실행 모드
          • 일반적인 응용 프로그램은 기본적으로 사용자 모드로 실행된다. 사용자 모드로 실행 중인 CPU는 입출력 명령어와 같이 하드웨어 자원에 접근하는 명령어를 실행할 수 없다.
        • 커널 모드: 운영체제 서비스를 제공받을 수 있는 실행 모드
          • CPU가 커널 모드로 명령어를 실행하면 자원에 접근하는 명령어를 비롯한 모든 명령어를 실행할 수 있다.
          • 사용자 모드로 실행되는 프로그램이 자원에 접근하는 운영체제 서비스를 제공받으려면 운영체제에 요청을 보내 커널 모드로 전환되어야 한다. 이때 운영체제 서비스를 제공받기 위한 요청을 시스템 호출(시스템 콜)이라고 한다.
          • 시스템 호출: 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 방법. 일종의 소프트웨어 인터럽트이다.
            • 시스템 호출의 종류로는 프로세스 관리, 파일 관리, 디렉터리 관리, 파일 시스템 관리가 있다.
      • 운영체제의 핵심 서비스 운영체제의 핵심 서비스는 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리 등이 있다.
        • 프로세스 관리: 운영체제는 다양한 프로세스를 일목요연하게 관리하고 실행하도록 한다.
        • 자원 접근 및 할당: 운영체제는 프로세스들이 사용할 자원에 접근하고 조작함으로써 프로세스에 필요한 자원을 할당해준다.
          • CPU 스케줄링
          • 메모리 할당
          • 입출력 장치가 발생시키는 하드웨어 인터럽트에 따른 인터럽트 서비스 루틴 제공
        • 파일 시스템 관리: 운영체제가 보조기억장치 속 데이터를 어떻게 파일과 디렉터리로 관리하는지

[공룡책 참고]

  • 커널 커널은 운영체제의 핵심. 운영체제는 커널과 커널과 커널 모듈들로 구성되는데, 커널이 운영체제의 핵심이다보니 일반적으로 운영체제와 커널은 동일시 된다. 커널이 같다면 같은 운영체제로 취급한다.
  • 인터럽트 신호를 보내 이벤트 발생을 알리는 것을 의미. 인터럽트가 발생하면 실행 중인 코드를 중단하고 인터럽트 서비스 루틴을 실행하여 인터럽트를 처리. 인터럽트가 발생하면 해당 프로세스는 ready queue에 들어가고 다시 스케줄링 됨.
    • 트랩: 소프트웨어에 의해 발생하는 인터럽트
    • 시스템 콜: 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것
    • 내부 인터럽트는 예외라고 부른다.
  • 쉘: 명령어 해석기. 사용자가 명령을 내리면 그 명령을 해석하여 결과를 반응하여 보여준다. os 바깥부분에 위치하여 사용자로부터 명령을 받아들이고 그 명령어를 해석하고 해당되는 명령을 실행해 준다.
  • 운영체제
    • 멀티 프로그래밍: 여러 프로그램을 메모리에 로드해 두고 한 프로세스가 대기 상태가 되면 다른 프로세스의 작업을 수행하는 시스템
    • 멀티 태스킹: 프로세스마다 작업 시간을 정해두고 번갈아가며 작업하는 방식. 플세스들이 빠르게 번갈아가며 메모리를 사용하면 사용자 입장에서는 마치 동시에 작동하는 것처럼 보인다.
    • 듀얼 모드: 이중 모드 방식을 사용하면 나쁜 의도를 가진 사용자로부터 운영체제, 하드웨어를 비롯한 시스템과 사용자를 보호할 수 있다.
      • 커널 모드 (하드웨어의 모드 비트가 0)
      • 유저 모드 (하드웨어의 모드 비트가 1)

운영체제 성능 평가 기준 4가지

  • 처리량 (처리능력) : Throughput 일정 시간 내에 시스템이 처리하는 일의 양
  • 반환 시간 : Turn-around time 작업 의뢰한 시간으로부터 처리 완료까지 걸리는 시간
  • 신뢰도 : Reliability 시스템이 주어진 문제를 정확하게 해결하는 정도
  • 사용 가능도 : Availability 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

메인 프레임, 배치(batch) 시스템, resident monitor

  • 메인 프레임: 대형 컴퓨터로 주로 큰 단체에서 연구나 조사를 목적으로 사용하는 컴퓨터.

  • 배치 시스템: 입력되는 자료를 일정 기간 또는 일정량을 모아 두었다가 한번에 처리하는 방식

  • resident monitor: 예전엔 운영체제라고 안부르고 resident monitor라고 부름 메모리에 항상 상주해 있으면서 모든 일을 수행하는 프로그램이라는 의미.
    프로그래머는 상주 모니터에게 전달될 정보를 작업 제어 카드에 의해 전달. 상주 모니터는 작업 제어 카드에 의해 지시하는 대로 자동 작업 순서를 제공. 제어 카드가 하나의 프로그램이 실행될 것이라는 것을 나타내면 상주 모니터는 프로그램을 기억 장치에 적재하고 제어를 프로그램으로 이관한다.

  • 운영체제 5 계층

  1. 프로세서 관리: 동기화 및 프로세서 스케줄링
  2. 메모리 관리: 메모리의 할당 및 회수 기능 담당
  3. 프로세스의 생성, 제거, 메시지 전달, 시작과 정지 등의 작업
  4. 주변 장치 관리: 주변 장치의 상태파악과 입출력 장치의 스케줄링
  5. 파일 관리: 파일의 생성과 소멸, 파일의 열기/닫기, 파일의 유지 및 관리 담당

[참고자료]
혼자 공부하는 컴퓨터구조+운영체제(저자: 강민철, 출판사: 한빛미디어)

profile
이전의 기록들 👉 https://blog.naver.com/reviewerkyj

0개의 댓글