System programs

1 minute read

시스템 프로그램

 

시스템 프로그램은 프로그램 개발과 실행을 편하게 할 수 있는 환경을 제공한다.

시스템 프로그램은 사용자 인터페이스부터 시스템 콜까지 다양하다.

어떤 것들은 매우 복잡하게 돌아갈 수도 있다.

 

  • 파일 관리

    • 생성, 삭제, 복사, 이름 바꾸기, 출력, 쓰기, 리스트
    • 범용적으로 파일과 디렉토리를 조작하는 기능
    • 예) Windows의 탐색기

     

  • 상태 정보

    • 날짜, 시간, 메모리 용량, 디스크 공간, 사용자의 수 등의 사용자 정보를 물을 수도 있다.
    • 상세한 성능, 기록, 디버깅 정보 등을 제공할 수도 있다.
    • 대체로 이런 프로그램은 출력을 형식화해서 터미널이나 다른 출력 장치에 출력한다.
    • 몇몇 시스템(윈도우)은 설정 정보를 저장하고 찾을 때 레지스트리라는 걸 사용한다.

     

  • 파일 수정

    • 파일을 생성하고 수정할 수 있는 텍스트 에디터들이다.
    • 파일의 내용을 찾아보거나 텍스트의 변환을 할 수 있는 특수 명령들이 있다.
    • UNIX가 대표적이다. (grep, gedit 등…)

     

  • 프로그래밍 언어 지원

    • 컴파일러, 어셈블러, 디버거와 인터프리터를 지원하기도 한다.

     

  • 프로그램 적재와 실행

    • 폰 노이만 구조 상 모든 프로그램은 메인 메모리에 적재되고,

      적재된 명령어 중 일부가 CPU로 올라가서 실행된다.

    • absolute loaders, relocatable loaders, linkage editors, overlay-loaders 가 있다.

    • 고급 언어와 기계어를 위한 디버깅 시스템도 지원한다.

    • 요즘은 사용하지 않는다.

     

  • 통신

    • 프로세스, 사용자, 컴퓨터 시스템들 간의 가상 연결을 생성하는 메커니즘을 제공한다.
    • 다음과 같은 기능을 제공한다.
      • 유저들이 서로의 스크린에 메시지를 전송할 수 있음
      • 웹 페이지를 탐색할 수 있음
      • 이메일을 주고 받을 수 있음
      • 원격으로 로그인이 가능함
      • 한 컴퓨터에서 다른 컴퓨터들로 파일들을 전송할 수 있음
    • 특정 인터넷 서비스에 대한 client 역할을 한다.

     

  • 백그라운드 서비스

    • 부팅 시 켜진다. 어떤 건 시스템 시작 후 바로 꺼지거나

      어떤 건 컴퓨터 종료 시까지 동작한다. (daemon)

      모든 운영 체제는 부팅 후에 특정 시스템 프로그램을 자동으로 수행시키는 수단을 가지고 있다.

      이들은 정해진 기능 후 종료될 수도 있고, 정지될 때까지 계속 있을 수도 있다.

       

    • 디스크를 체크하고, 프로세스 스케쥴링하고, 에러를 기록하고, 출력하는 기능 제공한다.

    • 커널이 아니라 사용자 맥락에서 작동한다.

    • services, subsystems, daemons 등이 있다.

      특히 daemon은 시스템 시작 후 늘 동작하는 프로그램으로

      네트워크 시스템에서 인터넷 요청을 받는 daemon,

      일정에 따라서 프로그램을 실행시키는 scheduler daemon,

      오류 발생시 로깅하는 daemon 등이 있다.

       

  • 응용 프로그램

    • 시스템에 항상 존재하지 않는다.
    • 사용자가 실행시킨다.
    • 보통 운영 체제의 일부분으로 취급되지 않는다.
    • 커맨드 라인, 마우스 클릭, 손가락 터치로 실행된다.
    • 일반적인 용도의 시스템 프로그램이다.