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이 일어 나게됨.
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 이란?: 같은 프로세스에 여러가지 작업이 중복되지 않도록 한가지 프로세스를 제외하고 다른 프로세스의 접근을 막는 작업
'공부 학습' 카테고리의 다른 글
컴퓨터 네트워크 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 |