운영체제는 컴퓨터를 사용하는 동안에 주기억장치에 존재하고 있어야 한다. 그래야 내가 지금 Window 환경 위해서 브라우저를 통해서 글을 작성할 수 있으니 말이다.


- 운영체제의 구성

    • 슈퍼바이저 프로그램
      운영 체제 중에서 가장 중심적인 프로그램으로 시스템의 모든 동작 상태를 관리하고 감독하는 제어 프로그램이다.

    • 작업 관리 프로그램
      사용자가 시스템에게 어떤 작업을 수행하게 지시하는 명령을 해독하여, 그 작업이 수행되게 준비하고 작업이 끝나면 마무리를 해준다.

    • 데이터 관리 프로그램
      입출력되는 데이터를 표준적으로 관리할 수 있게 해주고, 입출력 장치를 쉽게 사용할 수 있게 해준다. 시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있게 관리하는 프로그램이라 할 수 있다.

    • 통신 관리 프로그램

    • 언어 번역 프로그램
      프로그래밍 언어로 작성한 원시 프로그램(Source Program)을 기계 코드인 목적 프로그램으로 번역하는 역할을 담당한다. 언어 프로그램의 종류에는 컴파일러, 어셈블러, 인터프리터, 크로스 컴파일러 등이 존재한다. 잠깐 여기에서 프로그래밍 언어와 더불어서 컴파일러, 어셈블리어에 대한 전반적인 지식이 필요함을 느낀다.

      해당 자세한 내용은 프로그래밍 언어? 여기 글을 확인해서 더 자세하게 공부하였다.

    • 서비스 프로그램
      사용자가 더 편리하게 컴퓨터를 사용할 수 있게 지원하는 프로그램으로, 사용 빈도가 높은 프로그램들을 시스템 제공자가 미리 작성하여 사용자에게 제공해주는 프로그램이다. 

      대표적인 서비스 프로그램은 목적 프로그램을 연결해주는 로더(Loader)와 기억장치에 저장된 라이브러리(Library)를 관리하는 프로그램이다. 서비스 프로그램은 시스템 라이브러리라고 한다.

      • 연계 편집 프로그램(linking & editor)
        컴파일러가 출력한 목적 프로그램을 입력하여 실행할 수 있는 형태의 로드 모듈로 만들어내는 기능을 담당하는 프로그램. 결과적으로 서로 독립되어 컴파일된 여러 개의 목적 프로그램을 하나의 실행할 수 있는 로드 모듈로 만드는 기능을 수행한다. (Linking : 링킹 작업을 거치고, 하나의 Load Module : 로드 모듈로 변환)

      • 매크로
        어셈블리어로 프로그램을 작성할 때 반복적으로 나타나는 명령들을 매번 반복적으로 열거하여 프로그램을 작성하지 않고, 명령들을 하나의 새로운 명령으로 정의할 수 있게 해주는 기법.

      • 로더
        목적 프로그램을 입력하여, 컴퓨터가 프로그램을 수행할 수 있게 기억장치에 적재하고 수행을 시작하는 프로그램이다.

        원시 프로그램은 컴파일러나 어셈블러에 의해 목적 프로그램으로 변환된다.

        독립적으로 번역된 각 프로그램 간의 연결은 링킹(Linking) 작업을 통하여 하나의 로드 모듈(Load Module)로 변환된다. 로드 모듈은 실행할 수 있는 상태로 적재(Loading) 작업으로 주 기억장치에 적재된다.

        이 때, 로드 모듈이 적재되는 위치에 따라 각 명령어의 주소부분을 조정하는 것을 재배치(Relocation)라고 한다.

      • 정렬 및 병합 프로그램

    • 유틸리티 프로그램


Posted by doubler
,