ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 운영체제
    무제 2023. 3. 14. 21:15

    공부일자 : 2023.03.13

    참조 : 운영체제와 정보기술의 원리 (반효경 저)

     

     

    [Linux] 운영체제(Operating System)

    공부일자 : 2023.03.13 강의 : 리눅스 입문 - 개념으로 탄탄히! (ProgCoach4U님 강좌) 운영체제 공부일자 : 2023.03.13 참조 : 운영체제와 정보기술의 원리 (반효경 저) 2023.03.13 - [Linux] - [Linux] 운영체제(Operati

    crystal93.tistory.com

     

    1. 운영체제란

    운영체제(Operating System)란 사용자 및 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층으로,

    하드웨어 위에 기본적으로 운영체제를 탑재하여 전원을 켰을 때 소프트웨어를 손쉽게 사용할 수 있는 상태가 되도록 한다.

    즉 컴퓨터의 전원을 켜면 운영체제가 동시에 실행이 되는 것이다.

     

    운영체제는 소프트웨어이기 때문에 실행시키기 위해서는 메모리에 적재되어야 할 필요가 있다.

    하지만 운영치제는 규모가 크기 때문에 모두 메모리에 올라가지는 않고 항상 필요한 부분만 우선적으로 메모리에 적재되는데 이 부분을 커널(kernel)이라고 한다.

     

    2. 기능

    1) 하드웨어를 위한 기능 : 컴퓨터 시스템 내의 효율적 자원 관리

    자원들을 가장 효율적으로 관리해 가장 좋은 성능을 내도록 하는 동시에 사용자 및 프로그램들 간에 자원이 형평성있게 분배되도록 하여야 한다.

    2) 사용자를 위한 기능 : 편리한 컴퓨터 시스템 환경 제공

    여러 사용자 및 프로그램들이 독자적으로 컴퓨터를 사용하는 것만 같은 환상을 제공하는 것

    3) 보안 및 보호 기능

     

    3. 분류

    1) 동시 작업 지원 여부

    - 단일작업용 운영체제

    - 다중작업용 운영체제

     

    시분할 시스템
    (time sharing system)
    다중 프로그래밍 시스템
    (multi-programming system)
    대화형 시스템
    (interactive system)
    다중처리기 시스템
    (multi-processor system)
    CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리 여러 프로그램을 동시에 실행시키지만 사용자 개개인의 관점에서는 각 프로그램에 대한 키보드 입력 결과를 바로 화면에 보여줌 하나의 컴퓨터 안에 CPU가 여러개 있어 여러 프로그램이 동시에 실행 가능

     

    2) 다중 사용자에 대한 동시 지원 여부

    - 단일 사용자용 운영체제

    - 다중 사용자용 운영체제

     

    3) 처리방식

    일괄 처리
    (batch processing)
    시분할 방식 실시간 운영체제
    (real time)
    - 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식
    - 작업들을 모아 일정량이 모이면 일괄 처리하며, 작업이 모두 종료되어야 결과를 얻을 수 있다.
    - 응답시간이 길다.
    - 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할하여 사용
    - 응답시간이 짧다.
    - 요청한 결과를 바로 얻을 수 있으므로 대화형 시스템이다.
    - 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템
    - 경성 실시간 시스템 : 주어진 시간을 지키지 않을 경우 위험한 결과 초래
    - 연성 실시간 시스템 : 데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템

     

    4. 운영체제의 예

    MS 윈도우 유닉스
    - 편리한 사용
    - plug and play
    - 네트워크 프로그램 자체 지원
    - 개발 환경을 위해 설계
    - 이식성
    - 확장성
    - 커널의 크기가 작음
    - 오픈 소스
    - 리눅스의 성장으로 사용 규모가 늘어나고 있음

     

    5. 자원 관리 기능

    1) CPU 관리

    매 시점 어떤 프로세스에 CPU를 할당해 작업을 처리할 것인지 결정하는 일 = CPU 스케쥴링

    효율성과 형평성을 모두 고려해야 한다.

     

    * CPU 스케쥴링 기법

    선입선출
    (First Come First Served)
    라운드 로빈
    (Round Robin)
    우선순위
    (priority)
    - 먼저 도착한 프로세스를 먼저 처리
    - 전체적으로 보면 비효율적임
    - CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한
    - 정해진 시간이 끝나면 대기열의 가장 뒤로 이동
    - 대기 중인 프로세스에 우선순위를 부여하여 우선순위가 높은 순으로 CPU를 먼저 할당

     

    2) 메모리 관리

    메모리는 CPU가 직접 접근하는 컴퓨터 내부의 기억장치이다.

    프로그램이 CPU에서 실행되기 위해서는 먼저 메모리에 올라가 있어야 한다.

    운영체제는 메모리의 어떤 부분이 어떤 프로그램에 사용되고 있는지 주소(address)를 통해 관리한다.

    고정분할 방식
    (fixed partition)
    가변분할 방식
    (variable partition)
    가상메모리
    (virtual memory)
    - 몇 개의 분할로 미리 나누어 관리
    - 하나의 분할에 하나의 프로그램이 적재
    - 분할 크기보다 큰 프로그램 적재 불가능(외부조각)
    - 분할 크기보다 작은 프로그램 적재 시 영역이 남음(내부조각)

    - 매 시점 프로그램 크기에 맞춰 메모리를 분할하여 적재
    - 메모리의 크기보다 큰 프로그램 적재 불가능(외부조각)
    - 모든 프로그램이 가상의 메모리 주소를 가지고 물리적 메모리 주소로 매핑
    - 현재 사용되는 부분만 메모리에 올리고 나머지는 HDD와 같은 보조기억장치(swap area)에 저장했다가 필요할 때 적재
    - 가상메모리 주소 공간은 페이지(page)라는 동일한 크기의 작언 단위로 나누어 물리적 메모리와 스왑 영역에 일부분씩 저장

     

    3) 주변장치 및 입출력 장치 관리

    인터럽트(interrupt) : 주변장치들은 CPU의 서비스가 필요한 경우에 발생시키는 신호

    주변장치들은 각 장치마다 그 업무를 관리하는 컨트롤러가 존재한다.

    그 컨트롤러는 업무를 처리하고 CPU에 인터럽트를 발생시킨다.

    CPU는 인터럽트를 받으면 하던 작업을 저장시키고 인터럽트 요청을 먼저 수행한다.

Designed by Tistory.