ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 운영체제1 - 운영체제 소개(기본개념, 발전목적,기능)
    CS지식/운영체제 2024. 7. 11. 18:05

    1. 운영체제의 개념

    1.1. 운영체제의 구성요소

    그림1 컴퓨터 시스템의 구성요소로서의 운영체제

    1. 소프트웨어 - 컴퓨터가 기능을 수행하는데 필요한 모든 프로그램을 의미한다. 시스템 소프트웨어, 유틸리티, 응용 프로그램 등으로 구성된다.
      • 시스템 소프트웨어 : 컴퓨터 자원을 관리하고 응용프로그램을 실행을 지원하여 컴퓨터를 제어하는 프로그램이다. 운영체제를 비롯해 장치 드라이버 등으로 구성된다. 
      • 유틸리티 : 응용 프로그램보다 작지만 컴퓨터의 여러 처리 과정을 보조하여 시스템을 유지하고 성능을 개선하는 프로그램으로, 운영체제를 돕는 역할을 하며 필요에 따라 사용자나 운영체제가 메모리 상주 프로그램으로 설치하기도 한다. 
      • 응용 프로그램 : 특정 작업을 수행하려는 목적, 즉 어떤 문제를 해결하려고 사용자나 전문가가 만든 프로그램이다. 웹브라우저, 워드프로세서, 게임, 이미지 편집 프로그램 등이 이에 해당한다. 
    2. 하드웨어 - 기본 연산 자원을 제공하는 프로세서(CPU:중앙처리장치), 메모리, 주변장치 등으로 구성된다.

    2.1. 운영체제의 역할

    컴퓨터 시스템은 여러 사용자가 사용할 수 있으며 다양한 응용 프로그램이 있을 수 있다. 운영체제는 다양한 응용 프로그램이 하드웨어, 즉 컴퓨터 자원을 효율적으로 사용할 수 있도록 관리하고 조정하는 역할을한다. 즉 사용자와 하드웨어 사이의 중간 매개체로 응용 프로그램의 실행을 제어하고, 자원을 할당 및 관리하며, 입·출력 제어 및 데이터 관리와 같은 서비스를 제공하는 소프트웨어로 정의한다.

    • 하드웨어 및 사용자, 응용 프로그램, 시스템 프로그램 사이에서 1)인터페이스를 제공한다.
    • 프로세서, 메모리, 입·출력장치, 통신장치 등 컴퓨터 자원을 효과적으로 활용하려고 2)조정·관리 한다.
    • 메일 전송,파일 시스템 검사, 서버 작업 등 높은 수준의 서비스를 처리하는 3)응용프로그램을 제어 한다.
    • 다양한 사용자에게 컴퓨터 시스템을 보호하려고 입·출력을 제어하며 4)데이터를 관리한다.  

     

    그림2 운영체제 역활

    1. 조정자 
      • 컴퓨터 시스템은 하드웨어와 소프트웨어, 이 둘 사이를 오가는 데이터로 운영된다. 운영체제는 이 운영 요소를 적절하게 사용할 수 있도록 제어하면서 사용자와 응용 프로그램 간에 통신할 수 있게 한다. 직접 다른 프로그램이 수행❌ 하는 특정 작업을 하는 것이 아니라 이 작업을 할수 있는 환경만 제공하는 조정자인 셈이다. 예를 들면 워드프로세서 역할을 직접하는 것이 아니라 워드프로세서가 제 기능을 할수 있도록 도와준다.
    2. 자원 할당자 또는 관리자
      • 운영체제는 각 응용 프로그램에 필요한 자원을 할당하는 자원할당자이다. 컴퓨터 자원을 올바른 순서로 할당해야 원하는 업무를 제대로 수행할 수 있는데, 여러 응용 프로그램이 동일한 컴퓨터 자원을 요구하면 충돌이 발생할 수 있다. 이때 운영체제는 컴퓨터 시스템을 공정하고 효율적으로 운영하기 위해 자우너을 할당하는 방법을 결정하는 관리자 역할도 한다.
      • 운영체제는 다양한 입·출력장치와 응용 프로그램을 제어하는 역할을 한다. 컴퓨터 시스템을 부적절하게 사용하거나 오류가 발행하는 것을 방지하려고 하드웨어 사용을 조정하고 응용프로그램의 실행을 제어한다. 특히 입·출력장치를 동작시키고 통제하는 핵심 역할을 한다. 응용 프로그램과  입·출력장치 제어장치를 동작시키고 통제하는 핵심 역할을 한다.

    2.운영체제의 발전 목적

    운영체제의 목적을 알면 운영체제의 설계 목표와 기능, 운영체제를 배우는 이유를 이해할 수 있다. 운영체제는 크게 다음 세 가지 목적으로 발전해 왔다. 이 중 편리성과 효율성 목적은 서로 상반될 수 있는데, 과거에는 편리성보다는 효율성을 중요시하여 대부분 운영체제 이론은 컴퓨터 자원의 최적 이용에 3더 관심을 기울였다. 

    그림 3 운영체제의 발전 목적

    2.1.편리성 : 사용자에게 편리한 환경 제공

    사용자가 편리하게 작업할 수 있는 환경을 제공하는 것이 운영체제의 목표이다. 이는 운영체제의 역할 중 '사용자 인터페이스 제공'과 연관된다. 운영체제는 사용자가 프로그램을 효율적으로 실행할 수 있는 환경을 제공해야 한다. 사용자가 프로그램을 편리하게 개발할 수 있는 환경뿐만 아니라 응용 프로그램에 대한 사용자 인터페이스, 즉 사용자와 컴퓨터 시스템이 정보 및 명령을 상호 교환활 수 있는 인터페이스를 제공해야한다. 

     

    2.2. 효율성 : 시스템 성능 향상

    효율성은 사용자가 많은 대형 컴퓨터 시스템에서 특히 중요하다. 대형 컴퓨터 시스템은 대부분 고가 이기 때문에 효율적으로 사용해야 하는데, 운영체제는 각 프로그램을 유기적으로 결합하여 시스템 전체 성능을 향상 시켜왔다. 일반적으로 시스템 성능은 다음과 같은 기준에 따라 평가한다.

    1. 처리량(throughput) - 시스템 생산성을 나타내는 대표적인 지표로, 단위 시간당 처리하는 작업량이다.
    2. 지연·응답시간(turn around time) - 사용자가 시스템 작업을 의뢰한 후 반응을 얻기까지 걸린 시간, 즉 작업을 완료하기까지 걸린 시간이다. 시분할 시스템과 온라인 시스템에서는 응답시간이라고 하면, 일괄 처리 시스템이서는 턴어라운드 타임(turn around time)이라고 한다. 
    3. 신뢰도(reliability) - 하드웨어, 소프트웨어가 실패없이 주어진 기능을 수행할 수 있는 능력이다. 운영체제는 하드웨어 전체를 관리하는 소프트웨어로, 사용자와 응용 프로그램은 운영체제 위에서 작업을 한다고 볼 수 있다. 따라서 운영체제가 불안정하면 모든 작업에 신뢰도가 떨어질 수 밖에 없다.운영체제의 신뢰도가 떨어지면 그 피해는 사용자에게 돌아가기 때문에 운영체제는 신뢰도가 담보되어야 한다.
    4. 사용가능도(availability) - 가동율이라고도 한다. 사용자가 일정 기간 동안 컴퓨터를 실제로 사용한 시간(비율)이다. 고장으로 보수한 기간은 제외한다. 고장과 오류가 방해해도 그 영향을 최소화하여 시스템 전체를 중단하지 않고 운영할 수 있어야한다.

    2.3. 제어 서비스 향상

    운영체제는 시스템을 확장하고 효율적으로 운영할 수 있도록 새로운 기능의 효과적으로 개발을 허용하는 방법으로 발전해야 한다. 즉, 서비스를 방해하지 않고 새로운 기능을 도입하고 테스트할 수 있도록 발전해야 한다는 것이다. 그리고 입·출력장치의 동작을 관리 및 제어하거나 시스템 오류예방 등으로 컴퓨터 자원을 여러 사용자에게 효율적으로 할당하고 관리할 수 있도록 제어 서비스를 발전해 나가야 한다.  

     


    3. 운영체제의 기능 

    운영체제는 다양한 역할을 수행하고 그에 따라 제공하는 기능도 다양하다. 주요 기능을 크게 자원관리과 시스테 관리로 분류한다. 

    그림4 운영체제의 기능

     

    3.1. 자원 관리 

    컴퓨터 시스템의 메모리, 프로세스, 장치, 파일 등 구성 요소를 자원이라고 하는데 운영체제는 이 자원을 관리한다.

     

    3.1.1. 메모리 관리

    운영체제의 메모리 관리 기능은 메인 메모리와 보조기억장치로 구분하여 관리한다.

     

    메인 메모리 관리

     

    메인 메모리는 일반적으로 프로세서(CPU)가 직접 주소로 지정할 수 있는 유일한 메모리이다. 명령어가 메인 메모리에 있어야 프로세서가 명령어를 수행할 수 있으므로, 프로그램을 반드시 주소로 매핑하여 메인 메모리에 저장해야 한다. 그러므로 각 프로세스를 실행할 수 있도록 메인 메모리 공간을 충분히 확보하고, 더불어 각 프로세스를 효율적으로 실행할 수 있도록 메모리를 적절히 사용해야 한다. 메모리에 프로그램을 적게 저장해야 프로세서 이용률과 컴퓨터 응답속도를 높일 수 있는데, 이를 위한 다양한 메모리 관리 방법이 개발되었다. 운영체제는 다음 세부 기능을 수행하여 메인 메모리를 관리한다.

    • 메모리의 어느 부분을 사용하고, 누가 사용하는지 점검한다.
    • 메모리에 저장할 프로세스를 결정한다.
    • 메모리를 할당하고 회수하는 방법을 결정한다.

     

     

    보조기억장치

     

    프로그램을 실행하려먼 해당 프로그램을 실행하는 데 필요한 데이터가 메인 메모리에 적재되어야 한다. 그런데 메인 메모리는 공간이 제한되어 있어 모든 데이터와 프로그램을 계속 저장할 수 없으므로 보조기억장치를 이용한다. 대부분의 응용 프로그램은 메인 메모리에 적재할 때까지는 보조기억장치에 저장하므로 보조기억장치에 저장하는 방법은 매우 중요하다. 운영체제는 다음 세부 기능을 수행하여 보조 기억장치를 관리한다.

    • 빈 여유 공간을 관리한다.
    • 새로운 파일을 작성할 때 저장 장소를 할당한다.
    • 메모리 접근 요청을 스케줄링한다.
    • 파일을 생성하고 삭제한다.

     


    3.1.2 프로세스 관리 

    프로세스는 실행 중인 프로그램으로 보통 일괄 작업 하나가 프로세스가 되며, 시분할 사용자 프로그램도 하나의 프로세스가 된다. 또 스케줄링과 같은 시스템 작업도 프로세스가 된다.  하나의 프로세스는 1)프로세서, 2)메모리, 3)파일, 4)입·출력장치와 같은 자원이 있어야 업무를 수행하 수 있는데 자원은 프로세스를 생성할 때 제공하거나 실행 중에 할당 할수 있다.  시스템은 이 프로세스의 집합으로 크게 시스템 코드를 수행하는 운영체제 프로세스와 사용자 코드를 수행하는 사용자 프로세스로 구분한다. 모든 프로세스는 프로세서를 분할 사용하여 병행 수행할 수 있다. 운영체제는 다음 세부 기능을 수행하여프로세스를 관리한다. 

    • 프로세스와 스레드를 스케줄링한다.
    • 사용자 프로세스와 시스템 프로세스를 생성하고 제거한다.
    • 프로세스를 중지하고 재수행한다.
    • 프로세스 동기화 방법을 제공한다. 
    • 프로세스 통신 방법을 제공한다.
    • 교착상태(deadlock)를 방지하는 방법을 제공한다. 

     


    3.1.3 주변(입·출력)장치 관리

     

    운영체제는 특수 프로그램인 장치 드라이브를 사용하여 입·출력장치와 상호작용한다. 장치 드라이버는 특정 하드웨어 장치와 통신할 수 있는 인터페이스를 제공하므로 특정 하드웨어에 종속된 프로그램이다. 운영체제는 다음 세부 기능을 수행하여 주변(입·출력)장치를 관리한다.

    • 임시 저장(buffer-caching)시스템 기능을 제공한다.
    • 일반 장치용 드라이버 인터페이스를 제공한다.
    • 특정 장치 드라이버를 제공한다. 

     


    3.1.3 파일(데이터) 관리 

     

    파일 관리는 입·출력 파일의 위치, 저장과 검색 관리를 의미한다. 컴퓨터 시스템은 물리적으로 다양한 형태로 파일을 저장할 수 있는데, 운영체제는 데이터를 효율적으로 사용할 수 있도록 단인화된 저장 형태를 제공한다. 운영체제는 파일을 쉽게 사용하려고 보통 디렉터리로 구성하며, 다수의 사용자가 여기에 접근하려고 할 때는 이 접근을 제어한다. 운영체제는 다음 세부 기능을 수행하여 파을을 관리한다.

    • 파일을 생성하고 삭제한다.
    • 디렉터리를 생성하고 삭제한다.
    • 보조기억장치에 있는 파일을 매핑한다.
    • 안정한(비휘발성) 저장장치에 파일을 저장한다.

     


    3.2. 시스템 관리 

     운영체제는 추가로 시스템 보호, 네트워킹, 명령 해석기 등 기능을 제공한다.

     

    3.2.1. 시스템 보호(사용자 권한 부여)

     

    보호는 컴퓨터 자원에서 프로그램, 프로세스, 사용자의 접근을 제어하는 방법이다. 운영체제는 파일 사용 권한 부여, 데이터 암호화 등 서비스를 제공하여 데이처와 시스템을 보호한다.컴퓨터 시스템에서는 여러 프로세스를 동시에 실행할 수 있으므로 서로 보호해야한다. 그리고 네트워크로 파일 공유 사이트에 접속할 때는 다른 사용자의 프로그램에서 보호해야 한다.

     

    3.2.2. 네트워크(통신)

     

    프로세스는 다양한 방법으로 구성된 네트워크를 이용하여 완전 접속과 부분 접속 방법으로 연결한다. 연결된 프로세서가 통신을 할 때는 경로 설정, 접속 정책, 충돌, 보안, 등 문제를 고려 해야 하는데 이를 운영체제가 관리한다.

     

    3.2.3. 명령 해석기(shell), 커맨드 라인 인터페이스(CLI)

     

    명령 해석기는 운영체제에서 중요한 시스템 프로그램이다. 또 사용자나 프로그램에서 대화형으로 입력한 명령어를 이해하고 실행하는 사용자와 운영체제의 인터페이스이다. 사용자가 입력한 명령은 *제어문(control statement)으로 운영체제에 전달하는데, 이 전달을 명령 해석기가 담당한다. 전달 과정에서 명령어는 실제 실행가능한 작업으로 변환된다.  명령 해석기는 인터페이스 역할을 할 뿐 운영체제는 아니다.

    그리고 명령 해석기는 보통 커널과 분리하는 것이 좋다. 명령 해석기를 커널에서 분리하면 명령 해석기의 인터페이스를 변경할 수 있지만 분리하지 않으면 사용자가 커널의 코드를 변경할 수 없어 인터페이스를 변경할 수 없다. 명령해석기가 커널의 일부이면 비정상 프로세스가 커널의 특정 부분에 접근할 수 있으므로 커널에서 분리하는 것이 좋다. 

     

    *제어문(control statement) : 사용자가 입력한 명령어는 단순한 텍스트 문자열이 아니라, 운영체제에서 이해하고 실행할 수 있는 제어문이다. 또한 제어문은 특정 작업을 수행하도록 운영체제에 지시하는 명령어 집합이다. 

     

     

    [출처 - 시대에듀 독학사 컴퓨터공학과 2단계 운영체제 , 저 김동욱]

    https://www.sdedu.co.kr/book/item.php?it_id=1629890595&cat_id=005002

    댓글

Designed by Tistory.