티스토리 뷰

SoftWare/OS

OS - 2. Operating System Structures(1)

White Whale 2016. 3. 28. 20:11
728x90

1. 운영체제 서비스

• 사용자 인터페이스 (User Interface) : 거의 모든 윤영체제는 UI를 가지고 있으며 CLI(Command Line Interface), GUI(Graphics User Interface), Back Interface가 있다.
• 프로그램 실행(Program execution) : 시스템 프로그램을 메모리에 적재하여 실행할 수 있어야 한며 정상적이든 비정상이든 실행을 끝낼 수 있어야 한다.
• 입출력 연산(I/O operation) : 수행 중인 프로그램은 입출력 요구를 할 수 있으며, 이러한 입출력에는 파일, 입출력 장치가 연관될 수 있다.
• 파일 시스템 조작 (File-System manipulation) : 프로그램은 이름에 의하여 파일의 생성, 삭제, 검색, 정보 조회가 가능하야 한다.
• 통신(Communication) : 동일한 컴퓨터 혹은 네트워크로 연결된 다른 시스템의 프로세스들끼리 정보를 교환할 수 있다. 통신의 방법은 Message Passing이나 Shared Memory 등이 있다.
• 오류 탐지(Error detection) : 운영체제는 발생 가능한 모든 오류를 의식하고 있어야 한다.
• 자원 할당(Resource allocation) : 다수의 사용자, 다수의 작업들이 동시에 시행될 때 그 동작들이게 자원을 적절하게 할당한다.
• 회계(Accounting) : 사용자들이 어떤 종류의 자원을 얼마나 많이 쓰고 있나 관리하고 기록, 통계를 낼 수 있다.
• 보호와 보안 (Protection and Security) : 전체 시스템의 자원에 대한 모든권한이 통제되는것을 보호라고 하고 비밀번호를 기반으로 접근 권한을 인증하는 것을 보안이라 한다.

 

2. User Operating-System Interface

• Command-Interpreter(명령어 해석기) : 대부분 OS에는 명령 해석기를 가지고 있다. 속도는 일반 프로그램보다 명령 처리 속도가 빠르나 관리하기가 어렵다.
• Graphical User Interface : 데스크톱의 인터페이스라고 보면 된다.  
• 인터페이스의 선택 : 대부분 시스템은 CI와 GUI를 모두 탑제하고 있고 사용자가 개인의 선호에 따라 선택하면 된다.
• Shell scripts는 UNIX와 Linux와 같이 CI 기반을 둔 시스템에서는 매우 흔한 형태이다. 

 

3. System Calls

• 시스템 호출은 운영체제에 의해 사용 가능하게 된 서비스에 대한 인터페이스를 제공한다.
• 저수준 작업은 어셈블리 명령의 사용으로 인한 호출이 아니라  일반적인 C와 C++언어로 작성된 루틴 형태로 시스템 호출로 처리된다. 
• 대부분 프로그램들은 API에 따라 설계된다.
• 모든 운영체제는 고유의 시스템 호출을 가진다.
• 실제 시스템 호출이 아닌 API를 이용한 호출을 가지고 프로그램을 만들시 호환성이 높다. 그 이유는  같은 API를 지원하는 시스템에서는 컴파일 되고 실행될 수 있기 때문이다. 
• 실행 시간 지원 시스템(라이브러리에 내장된 함수의 집합) 운영체제가 제공하는 시스템 호출에 대한 연결로서 동작하는 시스템 호출 인터페이스를 제공한다.
• 시스템 호출 인터페이스는 API 함수의 호출을 가로채어 시스템 호출을 부른다.


• 시스템 콜에 대한 파라메타의 길이는 다르다. 보통 파라메타는 레지스터에 넣어 전달되지만 길이가 길거나 많을 경우 Block에다 정장하고 블락의 주소를 레지스터에 저장하여 넘긴다. 아니면 프로그램이 파라메타를 스텍에 푸시하고 운영체제가 그것을 팝하는 식으로 운영된다.

 

4. 시스템 호출의 유형

• 프로세스 제어(Process Control) : 끝내기, 중지, 적재, 메모리 할당 등
• 파일 조작(File management) : 파일생성, 삭제, 열기, 닫기, 읽기, 쓰기 등
• 장치 관리(Device management) : 장치 속성 획득, 설정, 장치 요구 등
• 정보 유지(Information maintenance) : 시간, 날짜, 프로세스,파일, 장치 설정 및 획득 등
• 통신(Communication) : 메시지 송수신, 통신 연결의 생성 및 제거 등
• 보호(Protection) : 유저, 그룹 설정, 파일 권한 설정 등

 

5. System call - Process Control

• 모든 프로세스는 정작적이든 비정상적이든 실행을 끝낼 수 있어야한다. 비정상적으로 실행을 끝낼 때 시스템 호출을 이용할 수 있다.
• 한 프로세스 내에서 다른 프로세스를 호출 할때 즉 다중 프로그래밍 될 새로운 잡이나 프로세스를 생성할 때 시스템 호출이 사용된다. 자세한 내용은 6장에서 다룬다.
• 단일 태스킹 시스템(MS - DOS)은 시스템이 켜졌을 때 메모리에 커널이 올라가고 명령해석기가 올라간 후 나머지는 빈 공간으로 둔다. 이후 프로세스가 메모리에 올라오면 프로에스에 필요 없는 명령어들을 내려서 여유 공간을 늘린다. 단일 태스킹이기 때문에 다른 프로세스가 메모리에 올라로는 것을 신경쓰지 않는다.

 

• 멀티 태스킹 시스템은 위 단일 테스킹 시스템과 다르게 하나의 프로세스가 동작할 때 메모리에 다른 프로세스가 적재 될 수 있다. 실행 중인 프로세스에서 호출이 될 수도 있고 사용자에 의해 따로 실행 될 수도 있다. 메모리 관리에 관한 자세한 내용은 3장에서 다룬다.

 

6. 시스템 프로그램(System Programs)

시스템 프로그램은 프로그램 개발과 실행을 위해 보다 편리한 환경을 제공한다.
 •  파일 관리 : 파일과 디렉토리를 생성, 삭제, 복사, rename, 인쇄, 덤프, 리스트, 그리고 일반적으로 조작한다.
 • 상태 정보 : 시스템에게 날짜, 시간, 사용 가능한 멤리와 디스크 공간의 양, 사용자 수 등의 상태 정보를 묻는다. 해당 정보는 단말기나 다른 출력장치 혹은 파일로 포맷되어 인쇄된다.
 파일 변경 : 디스크나 테이프에 저장된 파일의 내용을 생성하고, 변경하기 위해 다수의 text editor가 사용 가능하다.
 프로그래밍 언어 지원 : 프로그래밍 언어들에 대한 컴파일러, 어셈블러, 해석기가 OS와 함께 사용자에게 제공된다.
 프로그램 적재와 수행 : 일단 프로그램이 어셈블되거나 컴파일된 후, 그것이 수행되려면 반드시 메모리에 적재되어야 한다. 시스템은 절대로더(absolute loader), 재배치 가능 로더(relocatable loader), 링키지 에디터(linkage editor)와 중첩 로더(overlay loader) 등을 제공할 수 있다. 또한 고급어나 기계어를 위한 디버깅 시스템도 필요하다.
  통신 : 이들 프로그램은 프로세스, 사용자, 그리고 다른 컴퓨터 시스댐들 사이에 가상 접속을 이루기 위한 기법을 제공한다.  이들 프로그램은 사용자가 다른 사용자 화면으로 메시지를 전송 하거나, 웹 페이지 여기 저기를 읽거나, 전자 우편 메시지를 보내거나, 원거리에서 로그인 하거나, 한 기계에서 다른 기계로 파일을 전송할 수 있게 한다.

운영 체제를 위한 가장 중요한 시스템 프로그램은 명령 해석기로, 그 것의 중요한 기능은 사용자가 지정한 명령을 가져와서 그것을 수행하는 것이다.


'SoftWare > OS' 카테고리의 다른 글

OS - 3. Process(1)  (0) 2016.04.08
OS - 2. Operating System Structures(2)  (0) 2016.04.03
OS - 1. Introduction(4)  (0) 2016.03.27
OS - 1. Introduction(3)  (0) 2016.03.26
OS - 1. Introduction(2)  (0) 2016.03.11
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함