OS Concepts 10th

[OS] 2-1. Operating-System Services

patrick-star 2023. 8. 16. 23:36
728x90

OS는

1) 프로그램 실행환경을 제공
2) 프로그램과 그 프로그램의 사용자에게 특정 서비스를 제공

아래 그림은 다양한 OS 서비스에 대한 관점과 각 서비스 간의 상호작용을 보여준다. 이러한 서비스는 프로그래머가 프로그래밍 작업을 더 쉽게 수행할 수 있도록 한다.

UI - GUI, CLI, 터치스크린 인터페이스

program execution (프로그램 수행)

시스템은 프로그램main memory에 적재해서 실행할 수 있어야 한다.
해당 프로그램은 정상적이든 비정상적이든 실행을 끝낼 수 있어야 한다.

I/O Operation (입출력 연산)

입출력에는 파일 혹은 입출력 장치과 연관될 수 있다. 효율성과 보호(protection)를 위해 사용자가 I/O 장치를 직접 제어할 수는 없고 OS입출력을 수행할 수 있는 방법을 제공해야 한다.

파일 시스템 조작

1) 프로그램은 파일을 읽고 쓸 필요가 있다.
2) 이름에 의해 파일을 생성 및 삭제할 수 있고 지정된 파일을 찾을 수 있어야 하고 파일의 정보를 열거할 수 있다.
3) 몇몇 프로그램은 권한 관리를 이용해서 파일이나 디렉토리의 접근을 허가하거나 거부할 수 있게 한다.

Communication (통신)

하나의 프로세스가 다른 프로세스와 정보를 교환해야 할 필요가 생길 수 있다. 통신은 크게 2가지 상황으로 구분할 수 있다.

1) 같은 컴퓨터 내에서 수행되는 프로세스들 간의 통신
2) 같은 네트워크에 묶여있는 서로 다른 컴퓨터들 간의 통신

통신은 공유 메모리(shared memory) 또는 메시지 전달(message passing) 기법을 통해 구현될 수 있다.

Error detection (오류 탐지)

OS는 올바르고 일관성 있는 연산을 보장하기 위해 다양한 유형의 오류에 대해 적당한 조치를 취해야 한다.

사용자에게 도움을 주는 것이 목적이 아니라 시스템 자체의 효율적인 동작을 보장하기 위한 OS의 기능들도 존재한다.
다수의 프로세스가 사용하는 시스템에서는 프로세스들 간에 컴퓨터 자원을 공유함으로써 호율성을 얻을 수 있다.

Resouce Allocation (자원 할당)

다수의 프로세스 또는 다수의 작업동시에 실행될 때 각각에게 자원을 할당해줘야 한다.
OS는 여러 가지 다른 종류의 자원을 관리한다.

ex) CPU를 효율적으로 이용하기 위해서...

OS는 CPU의 스케쥴링 루틴이 CPU의 속도, 반드시 실행되어야 하는 프로세스, CPU의 processing core의 개수 등등을 고려해야 한다.

Logging

1) 어떤 프로그램이 어떤 종류의 컴퓨터 자원을 얼마나 많이 사용하는지 추적해서 관리
2) 사용 통계(Usage statistics)를 이용해서 컴퓨팅 서비스를 개선하기 위해 시스템을 재구성하고자 하는 시스템 관리자에게 귀중한 자료를 남길 수 있다.

Protection & Security

  • 보호 (Protection)
    서로 다른 여러 프로세스들이 실행될 때 하나의 프로세스가 실행되는 동안 다른 프로세스 또는 OS 자체를 방해하면 안 된다.
    보호는 시스템 자원에 대한 모든 접근이 통제되도록 보장하는 것을 필요로 한다.

  • 보안 (Security)

일반적으로 비밀번호를 사용해서 시스템에게 자기 자신임을 인증하는 걸 생각하면 된다.
이를 통해 부적절한 접근 시도를 막고 침입 탐지를 위해 모든 접속을 기록하는 것도 포함된다.

'OS Concepts 10th' 카테고리의 다른 글

[OS] 2-3. 시스템 콜  (0) 2023.08.21
[OS] 2-2. User and OS Interface  (0) 2023.08.16
[OS] Chapter 2. Operating-System Structure  (0) 2023.08.16
[OS] 1-10. 계산환경  (0) 2023.08.06
[OS] Chapter 1-4. 운영체제의 작동  (0) 2023.08.01