일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- selenium
- Entity
- Java
- preprocessing
- Class
- literal
- spring
- 리눅스
- BFS
- 셀레니움
- Operator
- Reference Type
- dbms
- python
- 리눅스 마스터 1급
- Binary Search
- Inheritance
- X.org
- Entity Set
- External Scheme
- Mac
- Physical Scheme
- 백준
- Unity
- systemd
- X윈도우
- descriptive statistics
- Polymolphism
- 자바
- OOP
- Today
- Total
목록2024/04/09 (4)
Byeol Lo
실행 중인 프로그램을 프로세스라고 부른다. 프로세스는 컴퓨팅 아키텍쳐에서 작업 단위라고 볼 수 있다. 운영체제를 논의할 때 제기되는 질문 중 하나는 모든 CPU 활동을 어떤 행위로 부를지에 대한 것이다. 초기 컴퓨터는 jobs이나 사용자 프로그램을 실행하는 batch system이었고, 이후에 time-shared system이 나왔다. 심지어 컴퓨터가 한 번에 하나의 프로그램만 실행할 수 있는 경우에도(멀티 태스킹을 지원하지 않는 임베디드 장치), 운영 체제는 메모리 관리와 같은 자체 내부 프로그램된 활동을 지원해야 할 수 있다. 이런 활동을 모두 프로세스라고 부른다. 개인적으로 더 현대적인 용어인 process를 선호하지만, job 이라는 용어는 역사적 의미가 있다. 운영체제 이론과 용어의 많은 부분..
현대 운영 체제와 같이 크고 복잡한 시스템은 제대로 작동하고 쉽게 수정될 수 있도록 설계되어야 한다. 일반적으로 하나의 단일 시스템 대신 작은 구성 요소 또는 모듈로 작업을 분할하는 방식을 생각할 수 있다. 각각의 모듈은 subsystem에 의해 잘 정의된 부분이어야 하며, 정확하게 정의된 인터페이스(특정 장치나 시스템에 대해 기능이나 동작을 외부에 노출 시키는 방법)와 기능들을 가져야 한다. 프로그램을 구조화할 때 비슷한 접근 방식을 사용할 수 있다. 2.8.1 Monolithic Structure 운영체제를 구성하는 가장 간단한 구조는 구조가 아예 없는 형태이다. 즉, 커널의 모든 기능을 단일한 정적 이진 파일에 넣어 하나의 주소 공간(하나의 컨텍스트 내)에서 실행한다. 이런 접근법을 Monolith..
운영체제를 설계하고 구현하는 데 있어서 마주치는 문제들을 보자. 2.7.1 Design Goals 시스템을 설계하는 첫번째 문제는 '목표' 와 '사양' 을 정의하는 것이다. 원래 높은 계층에서 시스템 디자인은 하드웨어와 시스템 유형에 대해 영향을 받을 것이다. 여기서 시스템 유형은 데스크톱/랩톱, 모바일, 분산, 실시간 시스템 등을 말한다. 그리고 높은 수준의 설계에서는 요구사항을 구체화하기가 더 많이 힘들어질 수 있지만, 이러한 요구사항들은 두 기본적인 그룹으로 나뉘어지며, User Goals 와 System Goals이 있다. 사용자들은 시스템에서 특정한 명백한 속성을 원한다. 시스템은 사용하기 편리하고, 배우기와 사용하기가 쉽고, 신뢰할 수 있고, 안전하며 빠를 필요가 있다. 이러한 명세는 시스템 ..
기본적으로 한 운영체제에서 컴파일 된 응용 프로그램은 다른 운영 체제에서 실행할 수 없다. 해당 운영 체제의 아키텍처에 맞게 컴파일이 이미 되어 있기 때문에, 실행을 하려면 해당 기계어 들을 다시 다른 운영 체제와 아키텍처에 맞춰주어야 하기 때문이다. 이 문제에서 각 운영체제가 응용 프로그램 사용을 위해 고유한 시스템 호출 세트를 제공하고, 시스템 호출은 운영 체제가 응용 프로그램을 사용하기 위해 제공하는 서비스 세트의 일부다. 시스템 호출이 어떻게든 통일된다고 해도 다른 장벽들이 있어서 우리가 다른 운영체제에서 응용 프로그램을 실행하는 것을 어렵게 만든다. 응용 프로그램을 여러 운영체제에서 실행되게 만드는 방법은 세가지가 있다. 응용 프로그램은 여러 운영체제에서 사용할 수 있는 인터프리터가 있는 int..