운영체제 책(Operating System Concepts 10th, 공룡책) Chapter-02 학습 내용을 기반으로 학습한 내용
2.0 개요
운영체제를 살펴보기 위한 관점 3가지
- 운영체제가 제공하는 서비스에 초점
- 운영체제가 사용자와 프로그래머에게 제공하는 인터페이스에 초점
- 시스템의 구성요소와 그들의 상호 연결에 초점
2.1 운영체제 서비스(Operating System Services)
프로그래머가 프로그래밍 작업을 쉽게 수행할 수 있도록 운영체제가 제공하는 것들
(꼭 프로그래머가 아니어도 인터페이스와 같이 일반 사용자들도 활용하는 것들이 있는 듯)
사용자 인터페이스(User Interface)
대부분의 운영체제는 사용자에게 인터페이스(UI, User Interface)를 제공한다
- GUI, Graphicial User Interface: 마우스
- NUI, Natural User Interface: 음성, 동작, 아이트랙, 에어마우스, 생체 인식
- OUI, Organic User Interface: 모든 사물이나 물질
- CLI, Command Line Interface: 키보드
GUI, CLI, 터치 스크린 정도만 책의 예시로 나와있다
프로그램 수행(Program Execution)
시스템은 모든 프로그램을 메모리에 적재해 실행할 수 있어야 하고, 실행을 끝낼 수 있어야 한다
(정상이면 실행하고 비정상이면 오류와 함께 종료하는 등의 활동)
입출력 연산(I/O Operation)
프로그램이 요구하는 입출력에 대해 사용자는 입출력을 직접 제어할 수 없고, 운영체제가 수행 수단을 제공해야 한다
파일 시스템 조작(File System Manipulation)
- 파일 읽고 쓰기
- 이름을 통해 파일을 생성, 삭제, 검색
- 파일 정보를 열거
- 파일 권한 관리(파일 또는 디렉터리에 접근 허가나 거부)
통신(Communication)
한 프로세스가 다른 프로세스와 정보를 교환
통신을 수행하는 두 가지 중요한 방법
- 동일한 컴퓨터에서 수행되는 프로세스 사이
- 서로 다른 컴퓨터 시스템상에서 수행되는 프로세스 사이(네트워크로 연결)
두 가지 구현 방법
- 공유 메모리
- 메시지 전달 기법(정보의 패킷들이 운영체제에 의해)
오류 탐지(Error Detection)
운영체제는 모든 가능한 오류를 지속적으로 탐지 및 옳게 수정할 수 있어야 한다
(CPU, 메모리 하드웨어, 입출력 장치, 사용자 프로그램 등)
시스템 자체의 효율적인 동작을 보장하기 위한 기능도 존재한다
프로세스 사이에 컴퓨터 자원을 공유하게 함으로써 효율성을 얻을 수 있다
자원 할당(Resource Allocation)
다수의 프로세스나 다수 작업이 동시 실행될 때 각각 자원(메모리, CPU, 저장장치 / 입출력 장치 등)을 할당해 주어야 한다
로깅(Logging)
어떤 프로그램이 어떤 종류의 자원을 얼마나 사용하는지를 추적하기 위한 정보 제공
보호(Protection)와 보안(Security)
보호: 시스템 자원에 대한 모든 접근이 통제되도록 보장
보안: 부적합한 접근 시도로부터 지키는 것. 패스워드 등을 통해 자기 자신을 인증하는 것부터 시작
2.2 사용자와 운영체제 인터페이스(User and Operating System Interface)
3가지 기본적인 방법은 크게 두 가지로 나뉜다
- 명령 인터프리터(command interpreter) 제공
- 그래픽 기반 사용자 인터페이스 제공
2.2.1 명령 인터프리터(Command Interpreter)
Shell이라고 불림
명령 인터프리터는 사용자가 지정한 명령을 가져와 그것을 수행
두 가지 일반적 방식으로 구현
- 인터프리터 자체가 명령을 실행할 코드를 가지는 경우
- 시스템 프로그램에 의해 대부분의 명령을 구현하는 것
두 번째 방법을 통해 인터프리터의 크기를 줄일 수 있다
2.2.2 그래픽 기반 사용자 인터페이스(Graphical User Interface)
마우스를 기반으로 사용
2.2.3 터치스크린 인터페이스(Touch Screen Interface)
대부분의 모바일 시스템에서 사용(스마트폰, 휴대용 태블릿)
제스처를 통해 상호 작용
2.2.4 인터페이스의 선택(Choice of Interface)
CLI는 작업을 더 빨리 수행할 수 있고, 자주 쓰이지 않는 기능도 사용할 수 있다
반복 작업도 빠르게 수행할 수 있다
이는 프로그래밍이 가능함을 뜻한다
2.3 시스템 콜(System call)
운영체제에 의해 사용가능하게 된 서비스에 대한 인터페이스를 제공
시스템 콜도 하나의 API
2.3.1 예제(Example)
cp 명령 하나에도 이렇게 많은 시스템 콜이 호출된다
2.3.2 응용 프로그래밍 인터페이스(Application Programming Interface)
운영체제에 매개변수 전달 방법
- 레지스터 내에 전달(레지스터보다 더 많은 매개변수가 존재할 수 있다)
- 메모리 내의 블록이나 테이블에 저장하여 주소를 전달
- 스택에 넣어진 값을 운영체제가 POP하여 사용
대표적으로
Windows API, POSIX API, Java API 등이 있다
POSIX(Portable Operating System InterFace for Unix)
이식 가능 운영체제 인터페이스의 약자로, 이식성 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로
IEEE가 책정한 애플리케이션 인터페이스 표준
서로 다른 Unix 기반 OS에서 호환성과 이식성을 위해 표준을 정한 것
왜 API를 사용하는가?
API를 통해 호출하면 호환성이 증대된다
런타임 환경:
컴파일러 또는 인터프리터를 포함한 응용 프로그램을 실행하는 데 필요한 전체 소프트웨어 +
라이브러리 로더와 같은 다른 소프트웨어
런타임 환경은 시스템 콜 인터페이스를 제공한다
API 호출자는 시스템 콜의 구현과 작업 내용을 알 필요가 없다
2.3.3 시스템 콜의 유형(Type of System Calls)
프로세스 제어(Process Control)
- create process, terminate process(프로세스 생성, 프로세스 종료)
- load, execute(적재, 실행)
- get process attributes, set process attributes(프로세스 속성 획득, 프로세스 속성 설정)
- wait event, signal event(이벤트 대기, 이벤트 알림)
- allocate and free memory(메모리 할당, 메모리 할당 해제)
한국판에는 추가로 나와 있는 내용이 있다
- end, abort(끝내기, 중지)
- wait_time(시간을 기다림): 시간을 기다림이라고 나와있는데, 뒤에 나오는 wait_time()이 아닌가 싶다
<혹시 잘못된 내용이나 해석이 있는 경우 댓글 부탁드립니다>
실행 중인 프로그램은 정상(end()) 또는 비정상(abort()) 종료될 수 있어야 한다
파일 조작(File Management)
- create file, delete file(파일 생성, 파일 삭제)
- open, close(열기, 닫기)
- read, write, reposition(읽기, 닫기, 위치 변경)
- get file attributes, set file attributes(파일 속성 획득, 파일 속성 설정)
장치 조작(Device Management)
- request device, release device(장치 요청, 장치 해제)
- read, write, reposition(읽기, 쓰기, 위치 변경)
- get device attributes, set device attributes(장치 속성 획득, 장치 속성 설정)
- logically attach or detach devices(논리적 장치 부착, 논리적 장치 분리)
정보 유지(Information Maintainance)
- get time or date, set time or date(날짜 또는 시간 획득, 날짜 또는 시간 설정)
- get system data, set system data(시스템 정보 획득, 시스템 정보 설정)
- get process, file, or device attributes(프로세스, 파일, 장치 속성 획득)
- set process, file, or device attributes(프로세스, 파일, 장치 속성 설정)
통신(Communications)
- create, delete communication connection(통신 연결 생성, 통신 연결 제거)
- send, receive messages(메시지 송신, 메시지 수신)
- transfer status information(상태 정보 전달)
- attach or detach remote devices(원격 장치 부착, 원격 장치 분리)
보호(Protection)
- get file permissions(파일 권한 획득)
- set file permissions(파일 권한 설정)
'CS > Operating System' 카테고리의 다른 글
운영체제 구조(Operating System Structures) - 3 (0) | 2024.06.25 |
---|---|
운영체제 구조(Operating System Structures) - 2 (1) | 2024.06.02 |
운영체제(Operating System)란? - 2 (1) | 2024.05.29 |
운영체제(Operating System)란? - 1 (0) | 2024.05.29 |