Computer Science/OS

Operating System Structures (1)

박붕어 2023. 11. 20. 23:09

Objectives

  1. OS가 User, Process, 다른 System에 제공하는 Service가 무엇인지 알 수 있다.

Operating System Services

운영체제가 User에게 제공하는 것들.

1. User Interface

CLI( Command Line Interface ) : Command를 통해 제어하는 것.

GUI( Graphics User Interface ) : Graphic을 통해 제어하는 것.

여러 운영체제는 CLI와 GUI를 동시에 제공한다.

2. Program Execution

Program을 Load, Run, Execution, End

비정상 종료 : Error → aborting 된다고 이야기한다.

3. I/O Operations

4. File-System Manipulation

파일 읽기, 쓰기, 생성, 제거, 검색, 목록화(list), 권한 관리 기능 제공

5. Communication

  1. Process 2. Network로 연결된 컴퓨터 시스템 간 통신을 제공한다.

방식에는 1. Shared Memory 방식. 2. Message Passing 방식이 있다.

6. Error Detection

CPU, Memory, I/O Devices, User Program에 발생하는 Error에 적절한 Action을 취한다.

⇒ Ensure Correct And Consistent Computing, Debug

7. Resource allocation

Multiple User, Multiple Job 환경에서 CPU Cycle, Main Memory, File Storage과 같은 Resource를 할당해준다.

8. Accounting

어느 User가 어떤 자원을 얼마나 쓰는지 감시한다.

9. Protection And Security

Protection : 시스템 자원에 접근하는 것을 제공한다.

Security : 다른 컴퓨터의 접근을 제어한다.

System Call

  • OS에서 제공하는 Programming Interface
  • C or C++과 같은 High-Level Language로 쓰여져있다.
  • 직접 System Call을 호출하기 보다는 API를 사용하여 프로그램에 접근한다.
  • Win32 API, POSIX API, Java API가 있다.
  • API를 사용하는 이유 : System Call보다 효율적이고 편리하다 ➕ 같은 API를 제공하는 System에서 사용가능하다. (확장성)
  • API보다 System Call은 복잡하고 어렵다.
  • Kernel단에서는 System Call을 숫자로 관리한다.
  • System Caller는 System Call이 실행되는 동안 무슨 일이 발생하는지 몰라도 된다. API의 종류와 API 실행의 결과만 알면 된다. 프로그래머들에게는 System Call이 API에 의해 숨겨져있다.

System Call Parameter Passing

System Call에서는 더 많은 정보를 요구할 때가 있다.

요구되는 정보는 OS와 Call에 따라 다양하다.

Parameter를 OS에 전달하는 Three General Method

  1. Simplest ⇒ Register를 이용하는 방법 : Register의 갯수는 한정되어 있어 Parameter 갯수 > Register 갯수 인 경우가 있다.
  2. Block방식 : Memory의 Block, 또는 Table의 주소를 전달한다.
  3. Stack을 이용하는 방식

Block 방식과 Stack방식은 전달할 수 있는 Parameter의 갯수에 제한이 없다.

System Call의 종류

  1. Process Control
  2. File Management
  3. Device Management
  4. Information Maintenance
  5. Communication

System Program

프로그램의 실행과 개발에 편리한 환경을 제공하는 것.

대부분의 사용자에게 보여지는 부분은 System Call이 아닌 System Program에 의해 정의된다.

System Call에 대한 User Interface를 제공한다.

1. File Management 📁

  • 파일 생성, 삭제, 복제, 이름변경, Print, Dump, List

2. Status Information ℹ️

  • Date, Time, 메모리, 디스크 공간, 사용자 수 등 시스템에 대한 정보를 제공한다.
  • Detail하게는 성능, Logging( Login, Logout 정보), 디버깅 정보 제공
  • 이러한 정보를 다른 장치 or Terminal에 출력해준다.
  • Registery를 제공한다.

*Registery : 여러개를 모으고 용도를 지정한 것.

3. File Modification 📄

  • Text Editor, Searching 제공

4. Programming Language 👨‍💻

  • Programming Language를 제공한다.
  • Compiler, Assembler, Interpreter, Debugger를 제공한다.

5. Program Loading And Execution 🔃

  • Absolute Loaders : Disk에 있는 것을 Memory에 올렸을 때 메모리 주소가 한번 할당되면 변경되지 않음
  • Relocatable Loaders : 프로그램의 메모리 주소가 변경될 수 있다.

6. Communications 📧

  • 여러 Process, User, Computer System간 연결 방식을 제공한다.

Ex) Web, Mail, Log-in Remotely, Transfer Files등

'Computer Science > OS' 카테고리의 다른 글

운영체제 2강 연습문제  (0) 2023.11.21
Operating System Structures(2)  (0) 2023.11.21
운영체제 1강 연습문제  (1) 2023.11.20
Operating System Instruction (2)  (1) 2023.11.20
Operating System Instruction (1)  (2) 2023.11.20