공부 학습

운영체제 2주차 - 1

Multitab 2021. 3. 8. 14:50

2장- Operating-System Structure


1. Operating System Service: 운영체제가 제공하는 서비스

  • OS는 프로그램과 서비스가 제공될 환경을 제공한다. ex)User Interface, CLI, I/O Operation, Program execution
  • FileSystem manipulation(파일 관리) /  Communication(통신) ex) Shared Memory, Message Passing / Error detect
  • Resource allocation: 여러가지 형태의 공유자원을 분배하고 공평하게 할당
  • Logging: 시스템이 사용하는 여러 업무을 기록하는것
  • Protection : 시스템에 대한 접근 통제 / Security : 시스템에 고의적으로 좋지 않은 행동을 제제하는 기능

1-2 CLI (Command Line Interpreter) == Shell

  • Shell 내부에 포함된 명령어 : Built-in / 다른 언어는 단순 Program의 이름이다.
  • 만일 명령어를 바꾸고 싶다면 Built-in이라면 Shell을 다시 만들어야하지만 그게 아니면 Shell자체를 건들 필요는 없다. 

1-3 GUI (Graphic User Interface)

  • 일반적으로 모니터, 마우스, 키보드를 통해 제공하며- Operating-System Structure

1. Operating System Service: 운영체제가 제공하는 서비스

  • OS는 프로그램과 서비스가 제공될 환경을 제공한다. ex)User Interface, CLI, I/O Operation, Program execution
  • FileSystem manipulation(파일 관리) /  Communication(통신) ex) Shared Memory, Message Passing / Error detect
  • Resource allocation: 여러가지 형태의 공유자원을 분배하고 공평하게 할당
  • Logging: 시스템이 사용하는 여러 업무을 기록하는것
  • Protection : 시스템에 대한 접근 통제 / Security : 시스템에 고의적으로 좋지 않은 행동을 제제하는 기능

1-2 CLI (Command Line Interpreter) == Shell

  • Shell 내부에 포함된 명령어 : Built-in / 다른 언어는 단순 Program의 이름이다.
  • 만일 명령어를 바꾸고 싶다면 Built-in이라면 Shell을 다시 만들어야하지만 그게 아니면 Shell자체를 건들 필요는 없다. 

1-3 GUI (Graphic User Interface)

  • 일반적으로 모니터, 마우스를 통해 서비스 제공하며 아이콘을 사용
  • 이전에는 DOS라는 Shell을 사용하다가 이제 GUI로 사용하기 시작함
  • Apple MAC OS는 Aqua GUI라고도 함
  • 이외에도 다양한 Linux OS들이 CLI를 기반한 선택적 GUI를 지원하고 있다.
  • 아래는 GUI의 환경의 이름이다.
  • CDE: Unix Common Desktop Environment 
  • KDE: Linux K Desktop Environment 
  • GNOME: Gnu Network Object Model Environment

2. System Call

  • OS에게 서비스를 받기 위한 Programming Interface 
  • 일반적으로 C/C++로 System Call이 이루어진다.
  • 그래서 이런식으로 High-level 언어를 통해 System Call을 줄러오는것을 API라고 한다.
  • 왜, API를 사용하는가? : 이식성, 사용의 용이성
  • EX) Win32 API ,Posix(Portable Operating System Interface) API, Java API) API
  • System Call에서는 Source file의 내용을 목적지 파일로 복사하는 것이지만 Copy하기 위해서는 굉장히 많은 System Call이 일어 나게됨.

 

Example of Standard API

2-1. System Call의 구현

  • System Call의 경우 각각의 System Call에 대하여 번호를 매김
  • 해단 번호는 Sytem Call에 저장되어 Table에 index로 사용되어서 지면서 System이 접근하도록한다.
  • 하지만 이런 내부적인 과정이 User에게 보여지진 않고 외적인 정해진 형식대로 보여지게 된다.
  • API - System Call - OS의 관계

  • 시스템 호출시에 이름을 제외한 정보를 넘겨주어야하는데 파라미터하는 방식은 3가지가 있다.
  • 1. 간단하게는 Register에 추가 파라미터를 담아 넘겨줌. 단, 넘겨줘야 할 데이터의 형식이 복잡할 경우가 있을수 있다. (Call by value)
  • 2. Register에 파라미터를 넘겨주되, 해당 데이터의 Block이나 table의 주소를 넘겨줌
  • 3. 스택을 사용하여 Stack에 값을 Push, Pop하는 과정을 거쳐 값을 넘겨줌 
  • 1번이 가장 빠르고 계산량도 덜하기 때문에 가능하면 1번 방법을 시도하되, 상황이 불가피 할경우 3번 방법을 시도하게된다.
  • System Call의 종류 1: 프로세스 관련작업: 프로세스 생성, 종료, 실행, 속성값 불러오기,  등등등...
  • System Call의 종류 2: 파일 관리 작업: 파일 열기, 닫기 , 읽기 쓰기, 옭기기, 파일 속성값 변경
  • System Call의 종류 3: 디바이스 관련: 디바이스 요청, 연결 끊기 , 등등...
  • System Call의 종류 4: 날짜, System Data 관련 info 관리
  • Ssytem Call의 종류 5: 네트워크, 통신 관련: 메세지(목적지를 Host name, Process name이 될수도 있음) 주고 받기(Client/Server), Shared Memory
  • System Call의 종류 6: 권한 관리 관련: 리소스에 대한 접근 권한 부여 , 접근 거부 , 허용
  • Lock 이란?: 같은 프로세스에 여러가지 작업이 중복되지 않도록 한가지 프로세스를 제외하고 다른 프로세스의 접근을 막는 작업 

Example of System Call

 

'공부 학습' 카테고리의 다른 글

컴퓨터 네트워크 1주차 - 1  (0) 2021.03.08
운영체제 2주차 - 2  (0) 2021.03.08
운영체제 1주차 - 3  (0) 2021.03.04
시스템 프로그래밍 1주차  (0) 2021.03.03
운영체제 1주차 - 2  (0) 2021.03.03