책/운영체제

운영체제 Ch02_'Operating-System Structure-1'

RyoTTa 2021. 1. 3. 22:45
반응형

Chapter 2 운영체제 구조

 

2.1 운영체제 서비스

운영체제 서비스를 바라보는 관점

 운영체제는 프로그램 실행환경을 제공, 프로그램과 그 프로그램의 사용자에게 특정 서비스를 제공한다.

 

 OS Service for user support

  User Interface : 사용자 인터페이스 (CLI, GUI, Batch)

  Program Execution : 프로그램을 메모리에 적재해 실행할 수 있다. 정상, 비정상 실행 종료 가능

  I/O Operation : 실행 중인 프로그램의 입출력 요구, 사용자들은 입출력 장치를 직접 제어할 수 없다.

  File-system Manipulation : 권한을 확인하여 파일 read/write/create/delete/search/list 를 수행가능하다.

  Communications : 프로세스간 통신, 네트워크간 통신 지원 (Shared Memory, Message Passing)

  Error Detection : 모든 가능한 오류에 대해 반응하며 수정해야 한다. (HW Error, SW Error)

 

 OS Service for Efficient Operation

  Resource Allocation : 다수의 작업이 동시에 실행될 때, 각각에 자원을 할당해 주어야 한다.

   (CPU cycles, Memory, File system)

  Logging : 프로그램이 어떤 종류의 자원을 얼마나 사용하는지에 대한 추적이 가능해야한다. 

  Protection and Security : Protections은 시스템 자원에 대한 모든 접근이 통제되도록 보장한다.

                                  Security는 외부 입출력 장치들을 부적합한 접근 시도로 부터 탐지한다.

 

2.2 사용자와 운영체제 인터페이스

 Command Interpreters(Command-line Interface : CLI)

  사용자가 지정한 명령을 가져와서 그것을 수행하는 것.

  ex) rm file.txt : rm이라는 파일을 찾아 메모리에 적재하고, 매개변수 file.txt로 수행한다. 

 

 Graphical User Interface(GUI)

  mouse, folder, icons, touch screen 등으로 이루어진 사용자 인터페이스 

  CLI에 비해 직관적으로 작동하며, 쉽게 사용가능하게 한다.

 

2.3 시스템 콜

 시스템 콜은 운영체제에 의해 사용 가능하게 된 서비스에 대한 인터페이스를 제공한다.

 운영체제 커널은 Function 형식으로 어플리케이션에게 제공된다.(HW Abstraction, SW Abstraction)

 어떤 프로그램이든지 리소스가 필요로 할때 시스템콜을 사용해야만 한다.

  시스템의 위험성을 감소시키기 위함, OS는 Parameter를 모두 확인한다.

  어플리케이션들은 HW 및 Data에 직접 접근을 하지 못한다.

 

 인터럽트(Interrrupt)

인터럽트 핸들러 요청 순서

  Interrupt Type은 Interrupt Number로 정의

  OS는 부팅시 Interrupt Descriptor Table (IDT) 설정하여 메모리에 구성

  각 Entery 는 Interrupt Handler

   

  시스템콜 호출 순서

   1. 커널이 각 system call type을 system call number로 정의

   2. 커널이 system call table을 초기화후, system call number(=system call vector)를 매핑

   3. User process가 system call number와 arguments를 설정

   4. User process가 int X를 실행 (X is 0x80 in linux0)

   5. Kernel Mode로 진입후 X를 위한 커널의 인터럽트 호출

   6. 커널이 System call number를 사용해 System call table을 검색

   7. 해당하는 fucntion이 있다면 호출

   8. 커널의 Return (Interrupt return)

 

 Application Programming Interface (API) for System call

  대부분의 응용 개발자들은 Application Programming Interface에 따라 프로그램을 설계

  API는 각 함수에 전달되어야할 매개변수들과 프로그래머가 기대할 수 있는 반환 값을 명시

  System Call을 직접 사용하기 까다롭고, 동일 API 사용 시스템에서 실행 되는 것(이식성) 증가

 

  Windows API for Windows systems

  POSIX API for POSIX-Based system (UNIX, Linx, Mac OS X)

  Java API for JVM

System call Interface

 libc = UNIX, Linux 시스템에서 C 언어로 작성된 프로그램을 위해서 제공되는 라이브러리

 

 매개변수 전달

  Block Method : 매개변수를 메모리 내의 블록이나 테이블에 저장, 블록의 주소가 레지스터내에 매개변수로 전달

  Stack Method : 매개변수는 프로그램에 의해 Push, 운영체제에 의해 Pop

  

 시스템 콜의 유형(Types of System Calls)

  프로세스 제어, 파일 조작, 장치 조작, 정보 유지보수, 통신, 보호 등 여섯가지 범주로 구별

  Process Control : fork, exe, exit

  File Manipulation : create, open, close, read, write, lseek

  Device Manipulation : open, close, read, write, ioctl

  Information Maintance : time, date, dump,pid

  Communication : open, close, connect, accept, read, write, send, recv, pipe, mmap, sendfile

  Protection : chmod, umask, chown

 

 Process Control

  프로그램을 Load 및 Execution, 정상적으로 또는 비정상적으로 종료가능 해야한다.

  Multi Programming 에서는 프로세스 관리가 필요하다

  Error handling : Terminate -> creating a memory dump -> print message -> run next command

 

좌, DOS 환경. 우, UNIX/Linux 환경

   DOS 환경

    Single-tasking system

    Coomand Interpreter가 프로그램을 메모리로 로드

    Instruction Pointer를 프로그램의 첫번째 Instruction으로 이동

    프로그램이 종료된다면, Command Interpreter를 Reload

 

  UNIX/Linux 환경

   사용자의 로그인 및 shell(프로세스) 실행

   사용자의 command 입력을 통해 프로세스 실행 요청(ex ls -la *.c)

   shell의 fork() 및 exec() 실행

   shell은 프로세스가 종료될때까지 wait or background 실행 가능

   프로세스가 종료된다면, exit() system call 호출

    

 Communications

  Message passing 

   Exchanging messages를 기초로 한다.

   Connection을 먼저 정의하여야 한다. (Sender/Receiver 의 존재 유무 확인)

  Shared-memory model

   일반적으로는 하나의 프로세스는 다른 프로세스 메모리를 참조하지 못한다.

   Share에 필요한 System Call이 반드시 호출

   각 프로세스들은 Shared Memory region의 무결성(Integrity)를 항상 확보해야 한다.

좌, Message Passing. 우, Shared-memory

 File Manipulation

  파일 생성, 삭제, 열기, 닫기

  읽기, 쓰기, 위치변경,

  파일 속성 획득 및 설정

 

 Device Management

  장치를 요구, 장치를 방출

  읽기, 쓰기, 위치변경

  장치 속성 획득, 장치 속성 설정

  장치의 논리적 부탁(Attach) 또는 분리(Detach)

 

 Information Maintenance

  시간, 날짜의 설정가 획득

  시스템 데이터의 설정과 획득

  프로세스, 파일, 장치 속성 획득 또는 설정

 

 Protection

  권한 설정 및 관리

반응형

' > 운영체제' 카테고리의 다른 글

운영체제 Ch03_'Process-2'  (0) 2021.01.08
운영체제 Ch03_'Process-1'  (0) 2021.01.07
운영체제 Ch02_'Operating-System Structure-2'  (0) 2021.01.07
운영체제 Ch01_'Introduction'  (0) 2020.12.18
운영체제 레퍼런스  (0) 2020.12.18