[운영체제] 운영체제의 서비스

hi·2022년 9월 6일
0

운영체제

목록 보기
3/9

운영체제별로 차이는 있지만 보통은 다음 네가지로 제공한다

서비스설명
부팅 서비스컴퓨터 하드웨어를 관리하고 프로그램을 실행할 수 있도록 컴퓨터에 시동을 건다
사용자 서비스프로그래머가 프로그래밍 작업을 쉽게 수행할 수 있도록 한다
시스템 서비스시스템의 효율적인 동작을 보장한다
시스템 호출프로그램이 운영체제의 기능을 서비스 받을 수 있는 프로그램과 운영체제 간의 인터페이스를 제공한다

1. 부팅 서비스

운영체제를 메인 메모리에 적재하는 과정을 부팅 또는 부트스트래핑 이라고 한다. 부트 로더는 부트스트랩 로더를 줄인 말로, 하드디스크와 같은 보조기억장치에 저장된 운영체제를 메인 메모리에 적재하는 ROM 에 고정시킨 소규모 프로그램이다.


ROM 은 Read Only Memory 의 약자로 한 번 기록한 데이터를 빠른 속도로 읽을 수는 있지만, > 기록 및 수정은 할 수 없음. 비휘발성 메모리임

컴퓨터를 종료하면 하드웨어를 초기화 시키는데 이는 시스템 장치 초기화, 시간 설정, 명령 해석기 적재와 준비 등이 있다. 이 중 시스템 장치의 초기화는 디렉터리, 파일 등을 점검하고, 시스템 버퍼와 인터렙터 벡터를 초기화하며, 운영체제의 루틴 대부분을 메모리 하위 주소에 적재하도록 설정하는 것이다.

2. 사용자 서비스

2.1 사용자 인터페이스 제공

사용자 인터페이스는 사용자와 컴퓨터 간의 상호작용이 발생하는 공간으로 CLI, 메뉴, GUI 등 형태로 구현할 수 있다.

  • CLI (명령 라인 인터페이스, Command Line Interface)
    CLI는 명령어를 입력하여 시스템을 동작하게 하는 텍스트 전용 인터페이스이다. 사용자가 프롬프트에서 명령어를 입력하여 컴퓨터와 상호작용할 수 있고, 명령어를 입력한 후에는 Enter를 눌ㄹ러야 한다.
  • 프롬프트
    컴퓨터가 입력을 기다리고 있음을 가리키려고 화면에 나타나는 표시이다. 유닉스에서는 $ 또는 %를 사용하며, 도스에서는 C:\ 등으로 표시한다.
  • 메뉴 인터페이스
    메뉴 등을 사용하여 시스템과 상호작용한다. ipad나 휴대폰, 현금 자동 인출기 등이 대표적인 예이다.

  • GUI (그래픽 사용자 인터페이스, Graphical User Interface)
    GUI는 사용자에게 정보와 작업을 표현하는 텍스트, 레이블이나 텍스트 탐색, 그래픽 아이콘, 시각적 표시기, 버튼, 스크롤바와 같은 위젯 그래픽 제어 요소를 사용하여 컴퓨터와 상호작용할 수 있는 가장 보편적인 유형이다. 마이크로소프트의 윈도우나 애플의 맥 OS에 사용하는 방법이 대표적인 예이다.

2.2 프로그램 실행

프로그램을 실행하기 위해선 스토레지에 있는 파일의 위치를 찾아 메모리에 적재해야 하고, 프로세서 시간을 할당해야 한다. 운영체제는 프로그램을 실행하려고 메모리 할당이나 해제, 프로세서 스케줄링과 같은 중요 작업을 처리한다.

2.3 입출력 동작 수행

수행 중인 프로그램은 입력이 필요하며, 사용자가 제공하는 입력을 처리한 후에는 출력을 생성해야 한다.

2.4 파일 시스템 조작

디스크에 파일을 저장하려면 특정 블록에 할당해서 저장하고, 파일을 삭제하려면 파일 이름이 제거되면서 할당한 블록이 초기화된다. 운영체제는 파일 시스템 조작 서비스를 제공하여 사용자가 파일 관련 작업을 쉽게 할 수 있도록 한다

2.5 통신 (네트워크)

프로세스가 다른 프로세스와 정보를 교환하는 방법은 동일한 컴퓨터에서 수행하는 프로세스 간의 정보 교환, 네트워크로 연결된 컴퓨터 시스템에서 수행하는 프로세스 간의 정보 교환 두 가지 방법이 있다. 운영체제는 다중 작업 환경에서 공유 메모리를 이용하거나 메시지 전달로 다양한 유형의 프로세스와 통신을 지원한다.

2.6 오류탐지

운영체제는 가능한 모든 하드웨어와 소프트웨어 수준에서 오류를 탐지하고, 시스템을 모니터링하여 조정함으로써 하드웨어 문제를 예방한다.

  • 프로세서, 메모리 하드웨어와 관련된 오류: 기억장치 메모리 오류, 정전
  • IO 장치 오류: 테이프의 패리티 오류, 카드 판독기의 카드 체증, 프린터 종이 부족
  • 사용자 프로그램 오류: 연산의 오버플로, 부적절한 기억장치 장소 접근, 프로세서 시간을 지나치게 많이 사용

3. 시스템 서비스

시스템 서비스는 시스템 자체의 효율적인 동작을 보장하는 기능이다.

3.1 자원할당

운영체제는 다수의 사용자나 작업을 동시에 실행할 때 운영체제가 자원을 각각 할당하도록 관리한다.

3.2 계정

운영체제는 각 사용자가 어떤 컴퓨터 자원을 얼마나 많이 사용하는지 정보를 저장하고 추적한다

3.3 보호와 보안

운영체제는 사용자가 다수인 컴퓨터 시스템에서 여러 프로세스의 동시 실행을 허용하기 위해 각 프로세스를 서로의 활동에서 보호한다. 보호는 시스템을 호출하려고 전달한 모든 매개변수의 타당성을 검사하고, 시스템 자원에 모든 사용자 접근을 제어하도록 보장하는 것을 말한다. 보안은 잘못된 접근 시도에서 외부 IO 장치를 방어하며, 외부 사용자에 인증을 요구하는 것이다.

4. 시스템 호출

시스템 호출은 실행 중인 프로그램과 운영체제 간의 인터페이스로 API (Application Programming Interface) 라고도 한다. 사용자 프로그램은 API 를 통해 운영체제의 기능을 제공 받는다. 즉, 운영 프로그램이 사용자 수준에서 지원하지 않는 기능을 운영체제의 루틴을 호출하여 제공받는 방법이다. 예를 들어 입출력 프로세스는 특정 영역에 읽거나 작성하는 시스템 호출을 요청하고, 이 요청을 운영체제가 처리한다. 시스템 호출에는 두 가지 방법이 있는데 첫 번째는 프로그램에서 명령이나 서브루틴의 호출 형태로 호출하는 방법이다. 보통은 어셈블리어로 제공하지만, 고급언어 (C, C++) 로 작성한 프로그램에서 직접 수행할 수도 있다. 두번 째는 시스템에서 명령 해석기를 사용하여 대화 형태로 호출하는 방법이다.

호출 서비스설명
프로세스 제어종료와 취소, load와 실행, 프로세스 생성과 종료, 프로세스 속성 획득과 지정, 대기와 대기 이벤트, 신호 이벤트, 메모리 할당과 해제
파일 조작파일 생성과 삭제, 파일 열기와 닫기. 파일 읽기와 쓰기기, 파일 재배치, 파일 속성 획득과 지정
장치 조작장치 요구와 해제, 장치 속성 획득과 설정, 장치 읽기와 쓰기, 재배치, 논리적 부착이나 장치 제거
정보 관리시간 날짜의 설정과 획득, 데이터의 설정과 획득, 프로세세스, 파일 장치 속성의 설정과 획득
통신통신 연결의 생성과 제거, 정보 상태 전달, 메시지의 송수신, 원격 장치의 부착 및 제거

0개의 댓글