목록콤퓨타 왕왕기초/OS (11)
파게로그
2.3 System Calls 시스템 콜은 운영체제에 의해서 사용 가능한 서비스에 대한 인터페이스를 제공한다. 이러한 calls는 일반적으로 C 또는 C++로 쓰인 함수로서 가능한데, 그럼에도 일부 low-level tasks(예를 들어, 하드웨어가 직접적으로 접근되어야 하는 작업)는 assembly-language instructions을 사용하여 쓰여야 할 수 있다. 2.3.1 Example 시스템 콜이 사용되는 것을 기술하기 위한 예시: 하나의 파일로부터 데이터를 읽어, 그 데이터를 다른 파일로 복사하는 간단한 프로그램 이 프로그램에서 처음 필요한 것은 두 파일의 이름: input file과 output file 이러한 이름은 많은 방법을 통해 특정될 수 있는데, 운영체제의 설계에 따른다. 하나의 ..
Chapter Two: Operating-System Structures 이번 챕터의 목표는? 운영체제가 사용자, 프로세스, 다른 시스템에 제공하는 서비스를 기술한다. 운영체제를 구축하는 다양한 방법들을 알아본다. 운영체제가 설치되고 커스터마이즈되는 방법과 부팅되는 방법을 설명한다. 2.1 Operating-System Services 운영체제의 서비스 1. 사용자를 위한 서비스 User interface(UI) - command-line interface(CLI) - batch interface(파일을 입력으로 하며, 그 파일이 실행됨) - graphical user interface(GUI) Program execution I/O operations File-system manipulation Com..
1.10 Kernel Data Structures lists, stacks, queues trees hash functions and maps bitmaps 1.11 Computing Environments traditional computing mobile computing 1.11.3 distributed systems 1.11.4 client-server computing 1.11.5 peer-to-peer computing 1.11.6 virtualization 1.11.7 cloud computing 1.11.8 real-time embedded systems 1.12 Open-Source Operating Systems 1.13 Summary
컴퓨터 시스템이 여러 명의 사용자가 접속하는 것, 그리고 여러 개의 프로세스가 동시에 실행하는 것을 허가하는 한, 데이터에 대한 접근은 규제가 필요하다. 즉 파일, 메모리 세그먼트, CPU 등 자원은 OS로부터 허가받은 프로세스만이 동작할 수 있어야 한다는 것이다. 예를 들어, memory-addressing hardware는 프로세스가 자신의 주소 공간에서만 실행되는 것을 보증한다. 타이머는 어떤 프로세스도 결과적으로 제어권을 내놓는 일 없이 CPU를 점유할 수는 없도록 보증한다. Device-control register는 사용자에게 접근할 수 없지만, 그래서 다양한 주변부 기기들의 무결성은 보호된다. Protection은 "any mechanism for controlling the access o..
프로세스는 작업, 또는 time-shared program이기도하지만, 보다 일반적인 개념이다. 프로세스는 작업을 수행하기 위해서 CPU time, memory, files, I/O devices와 같은 자원들을 필요로 한다. 이는 프로세스가 만들어질 때, 또는 실행 중일 때 할당된다. 자원뿐만 아니라, 프로세스가 만들어질 때에는 많은 초기 데이터(input)도 전달된다. 프로세스가 종료되면, 운영체제는 재사용 가능한 자원을 회수할 것이다. 프로그램 자체는 프로세스가 아니다. 프로그램은 하나의 수동적인 entity로서, 디스크에 저장된 파일의 내용과 같다. 반면 프로세스는 하나의 능동적인 entity이다. 싱글쓰레드 프로세스는 하나의 program counter를 가지는데, 이는 실행할 다음 instru..
1.5 Operating-System Operations 현대 운영체제는 interrupt driven이다. events는 항상 interrupt나 trap의 발생에 의해 신호된다. trap(exception)은 소프트웨어에 의해 발생된 인터럽트로서 에러 또는 운영체제의 서비스가 실행되어야 하는, 사용자 프로그램에 의한 특정한 요청에 의한 것이다. 운영체제와 사용자가 컴퓨터 시스템의 HW, SW 자원을 공유하기에, 사용자 프로그램에서의 에러는 실행 중인 하나의 프로그램에 대해서만 문제를 일으키도록 할 필요가 있다. sharing이 존재하는 한, 하나의 프로그램에서 발생한 버그가 많은 프로세스들에 영향을 끼칠 수 있다. 예를 들어, 하나의 프로세스에서의 무한 루프가 다른 많은 프로세스의 적절한 작동을 막을..
1.4 Operating-System Structure multiprogramming을 가능하게 한다. 이를 통해 CPU 이용률을 향상시킨다. - 메모리에 동시에 몇 개의 작업을 유지한다. - 작업은 초기적으로 디스크 상의 job pool에 유지된다. 이는 메인 메모리에의 할당을 위해 디스크에 상주한다. time sharing(시분할, or multitasking)은 멀티프로그래밍의 논리적 확장이다. - 다수의 작업 간 전환이 굉장히 빠르게 일어나서 사용자들을 그것을 알아차릴 수 없어, interact가 가능하다. - user는 입력 장치를 통해 OS에 instruction을 주고 -> 출력 장치를 통해 즉각적인 결과를 기다린다. - 따라서 resopnse time이 짧아야만 한다. 프로세스: A pro..
1.3 Computer-System Architecture 1.3.1 Single-Processor Systems 싱글 프로세서 시스템에는 general-purpose instruction set을 실행할 수 있는 CPU가 하나 있고, 대부분 이러한 시스템에는 특수 목적의 프로세서를 별도로 가지고 있다. 그것은 디스크, 키보드, 그래픽 컨트롤러의 device-specific한 프로세로서이다. mainframe에서는 보다 general-purpose processors의 형태인데 I/O processor와 같은 것이다. 이러한 프로세서는 운영체제에 의해 관리되기도 하고, 그렇지 않기도 한다. 이 때 관리라는 것은 운영체제가 정보를 보내거나, 다음 작업을 알려주거나, 상태를 감시하는 것을 말한다. 또 어떤 ..