운영체제 2장 - 운영체제 서비스와 인터페이스
2장 내용 요약
- 운영체제가 사용자, 프로세스 및 다른 시스템에게 제공하는 서비스들에 대해 알아봄
- 운영체제를 구성하는 여러 방법들
- 운영체제 설치, 맞춤화, 부팅과정 등을 다룸
- 운영체제에 대한 관점들
- 운영체제가 제공하는 서비스 - 사용자/프로그래머 입장
- 운영체제가 제공하는 인터페이스 - 프로그래머입장. 시스템콜
- 운영체제 구성요소와 그들의 상호 연결 - 설계자 입장
목차
2.1 운영체제 서비스 2.2 사용자 운영체제 인터페이스 2.3 시스템 호출(system call) 2.4 시스템 호출의 유형 2.5 시스템 프로그램 2.6 운영체제의 설계와 구현 2.7 운영체제 구조 2.8 운영체제 디버깅 2.9 운영체제 생성 2.10 시스템 부트
2.1 운영체제 서비스
- 운영체제 서비스 제공 방법
- 유저 인터페이스를 통해 시스템 콜 호출. 이를 이용해 OS가 서비스들을 제공함
운영체제가 제공하는 서비스들
- User Intergace - 거의 모든 운영체제가 제공함
- Command Line Interface(CLI) : 리눅스, Dos 등
- Graphic User Interface(GUI) : 윈도우, 우분투, 맥 등
- Batch Interface : shell 프로그램
- 프로그램 실행(execution)
- 프로그램을 메모리에 적재 후 실행, 또는 종료시킴
- 입출력 연산
- 효율과 보호를 위해 사용자 대신 입출력 수행 서비스를 제공
- 파일 시스템 연산
- read, write, create, delete
- 파일 검색, 파일 목록 및 정보 출력
- 파일 디렉토리 접근 권한 관리 등
- 통신
- 프로세스간, 다른 컴퓨터의 프로세스간 등
- 정보 교환 방법 : 동일 컴퓨터인 경우 공유 메모리, 다른 컴퓨터인경우 메시지 전송
- 오류 탐지
- 오류 발생시 하드웨어/내부 인터럽트로 CPU에게 알림
- CPU, 메모리 패리티 오류, 입출력장치 오류, 사용자 프로그램 오류 등
- 시스템 정지, 오류 발생 프로세스 종료, 오류 원인 제거 후 재실행 등 조치
- 오류 발생시 하드웨어/내부 인터럽트로 CPU에게 알림
- 자원 할당(resource allocation)
- 물리적 자원 : CPU 사이클, 메인 메모리, 저장장치, 네트워크, 여러 입출력장치 등
- 추상적 자원 : 파일, 페이지, 프로세스, 프로토콜 등 운영체제가 관리를 위해 추상화 한 객체들
- 일부 자원들은 특별한 할당법을 사용, 일반적인 자원들은 request/release 방법을 사용함.
- 회계(accounting)
- 컴퓨터 자원에 대한 사용 기록
- 보호(protection)와 보안(security)
- Protection : 한 프로세스가 다른 프로세스나 운영체제의 동작을 방해하지 않도록, 시스템 자원에 대한 접근을 통제하는 것
- Security : 내부, 외부로부터 부적합한 시스템 접근을 통제하는것. 사용자 인증, 접속 기록을 통한 침입 탐지 등
2.2 사용자 운영 인터페이스
명령어 해석기(Command Interpreter), CLI
- 사용자의 명령어를 받아 수행 ex) UNIX 셸, MS-DOS
- 구현 방법
- 커널에 포함되어 구현
- 작업이 시작되거나 로그온 할때 수행되는 특수한 프로그램으로 구현
- 여러 명령어 해석기를 제공하는 시스템에서는 선택하여 사용 가능
- UNIX/Linux에서는 Bourne Shell, C shell, bash, ksh 등 선택 가능함
- 명령어 처리의 구현
- 내장 명령어 : 명령어 해석기에 명령어 처리 코드를 포함함
- 유틸리티 명령어 : 명령어가 명령어 실행 파일을 나타내며, 새롭게 추가 가능
- 숙련되면 작업이 빨라 효율적이므로 시스템 관리자, 파워 유저가 많이 사용함
- 어떤 시스템은 GUI는 일부 기능만 제공하여 CLI로 하는것이 안정적
그래픽 사용자 인터페이스(GUI)
- 사용자 친화적 인터페이스
- Windows, MAC, Ubuntu 등
- 사용하기 쉽다
- 현재는 GUI도 CLI를 제공함
- UI는 OS의 직접적인 기능이 아님. OS 커널 밖에서 수행됨
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.