🖥️ Computer Science/Operating System

Paging비균등 고정 분할 기법과 가변크기 분할 기법은 메모리를 효율적으로 이용하지 못한다. 전자는 internal fragmentation(내부 단편화)를 초래하고 후자는 external fragementation(외부 단편화)를 일으킨다. 주기억장치를 비교적 작은 고정 조각으로 나눈다고 하자. 페이지라 불리는 이 프로세스 조각은 프레임이라 불리는 빈 메모리의 조각에 저장될 수 있다. 운영체제는 각 프로세스마다 하나의 페이지 테이블을 유지한다.이 페이지 테이블은 프로세스의 각 페이지들에 해당하는 프레임의 위치를 관리한다.프로그램 안에서 각 논리주소는 페이지 번호와 페이지 내의 오프셋으로 구성된다.   아래 그림은 페이지와 프레임의 사용 예이다. (a)는 15개의 빈 프레임들을 의미한다.(b)는 4개의..
Memory Management (메모리 관리)멀티프로그래밍 시스템에서는 주기억장치의 "사용자" 부분이 다수의 프로세스들을 수용하기 위해 더 여러 개로 나뉘게 되는 과정을 Memory Management(메모리 관리)라고 한다. 메모리는 사용가능한 처리기 시간을 소비하기에 충분한 수의 프로세스들이 준비 상태에 있도록 할당되어야 한다.   메모리 관리가 만족시켜야 하는 요구 조건은 다음과 같다.Relocation (재배치)Protection (보호)Sharing (공유)Logical organization (논리적 구성)Physical organization (물리적 구성)   Relocation (재배치)- 프로그래머는 자신의 프로그램이 수행될 때 주기억장치에 다른 어떤 프로그램들이 존재할지를 미리 알 ..
멀티프로세서 스케줄링에는 다음의 세 가지 설계 이슈들이 있다.프로세스를 어느 처리기에 할당할 것인가?각 처리기에서 멀티프로그래밍을 지원할 것인가?다음번 실행 프로세스로 어떤 프로세스를 고를 것인가? Processor Affinity (처리기 친화성)- 준비상태의 쓰레드를 그 쓰레드가 전에 실행되었던 처리기에 스케줄링하는 것이 합리적이다. - Processor Affinity는 처리기 전용 지역 캐시(local caches) 때문에 중요하다. 스레드가 수행할 때 수행되었던 처리기 전용 캐시에 데이터가 여전히 남아 있을 수 있기 때문에 성능이 개선될 수 있다.다른 처리기에 변경되어 수행되는 것은 필요한 데이터가 새로운 처리기에 다시 로드되어야 하고 지난 처리기의 캐시 라인들이 무효화되어야 한다는 것을 의미한..
Scheduling 처리기 스케줄링의 목적을 한마디로 표현하면 "응답 시간이나, 처리량, 효율성을 증대시키기 위해 처리기가 다음에 실행할 프로세스를 선택하는 것" 이다. (응답시간 ↓, 처리량 ↑, 효율성 ↑) 대기 큐의 구조를 최적화하는 문제도 스케줄링의 성능에 중요한 요소일 것이다. Types of Scheduling  Long - Term Scheduling- Batch System- 프로세스를 시스템으로 진입시킬지 말지를 결정한다.- 멀티프로그래밍의 정도를 제어하는 역할- 프로세스가 많아질수록, 자기 순서에 할당받게 될 실행시간은 짧아진다.- 시분할 시스템에서 대화형 프로그램의 경우에는 실질적인 프로세스 생성 요청이 장기 스케줄러로 들어온다. 프로세스는 언제 생성되는가?- 각 프로세스들이 종료될 ..
Principles of Deadlock교착상태(deadlock)이란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태로 정의된다.    Reusable Resources(재사용 가능한 자원) - 프로세스의 사용에 의해 없어지지 않는 자원 - 프로세스가 사용한 후 다른 프로세스가 다시 사용할 수 있도록 반납하게 된다. - 처리기, 입출력 채널, 주/보조 메모리, 장치, 파일이나 데이터베이스나 세마포어와 같은 자료 구조들이 재사용 가능한 자원의 대표적인 예이다. - Deadlock(교착 상태)은 자원을 가지고 있는 한 프로세스가 다른 자원을 요청할 때 발생한다.   예시1 만약 수행 순서가 위와 같이 p0 -> p1 -> q0 -> q1 -> p2 -> q2 순서로 되면 교착 상태가..
Semaphore - 시그널을 위해 세마포어라고 불리는 특수 변수들을 사용한다.- 시그널이 전달될 때까지 프로세스는 suspend가 된다.  Semaphore는 integer 변수 s로 나타내며 가능한 연산은 다음과 같다. - Initialization : 음수가 아닌 값으로 초기화 - Wait : 세마포어 값을 감소, 만일 값이 음수가 되면 semWait을 호출한 프로세스는 블록, 음수가 아니라면 프로세스는 계속 수행 - Signal : 세마포어 값을 증가, 값이 양수가 아니면(0이거나 음수면), semWait 연산에 의해 블록된 프로세스들을 깨운다.        예시1프로세스 A,B,C를 세마포어를 사용해 구현한 것이다.  1. 세마포어가 1이기 때문에 A에서 Semwait()을 호출하면 lock 값..
Mutual Exclusion: Hardware Support Interrupt Disabling (인터럽트 금지) 단일처리기에서 병행 처리되는 프로세스들은 오버래핑되는 것이 아닌 인터리빙된다.즉, 실제로 동시에 수행되는 것이 아니라 프로세서를 번갈아 가며 실행한다. 또한 프로세스는 운영체제 서비스를 호출하거나 인터럽트될 때까지 계속 실행하게 된다. 인터럽트가 발생하지 않으면 그 동안은 한 프로세스의 계속적인 실행을 보장할 수 있다. 임계 영역에서는 인터럽트가 발생할 수 없기 때문에 상호 배제가 보장된다. - 수행 효율이 감소된다.- 멀티프로세서 시스템에서는 상호 배제를 보장할 수 없다.     Special Machine Instructions (특별한 기계 명령어)이 명령어가 수행되는 동안에는 같은 ..
운영체제 설계의 핵심 3가지 주제 Multiprogramming(멀티프로그래밍) - 단일 처리 시스템 상에서 다수의 프로그램 관리 Multiprocessing(멀티프로세싱) - 멀티프로세서 시스템 상에서 다수의 프로세스 관리 Distributed processing(분산 처리) - 다수의 분산된 컴퓨터 시스템 상에서 수행되는 다수의 프로세스 관리 ㅡ> Concurrency(병행성) 문제가 발생 Concurrency Issues - 프로세스 간 통신 - 자원에 대한 공유와 경쟁 - 프로세스들의 동기화 - 프로세스에 대한 시간 할당 Concurrency Terms 먼저 3가지 용어에 대해 알아보자. Atomic Operation (원자적 연산) - 함수 또는 액션으로 더이상 분할할 수 없는 단위 Critic..
Process Creation 프로세스 관련 System calls - fork : 프로세스 생성 - exec : 기억장소에 새로운 프로그램으로 대치 - wait : 동기화 관련 - exit : 프로세스 종료 Fork 함수와 Exec 함수 프로세스의 생성 (fork) - 호출한 프로세스와 동일한 프로세스를 새로 생성하여 새로운 프로세스 ID할당 - 부모(parent) 프로세스 : fork를 호출한 프로세스 - 자식(child) 프로세스 : fork에 의해 생성되는 프로세스 프로그램의 실행 (exec) - 호출한 프로세스를 새로운 프로세스로 변경한다. - 호출 후의 프로세스 ID는 변하지 않는다. - 새로운 프로그램의 내용이 실행된다. 프로세스의 생성 (Fork) 1. 새로운 프로세스를 생성 - 부모(pa..
Processes and Threads 프로세스는 두 가지의 특성을 가진다. - Resource ownership (프로세스가 메인 메모리에 있을때) 프로세스 이미지를 위한 가상 주소 공간을 포함한다. 자원 소유권의 단위는 프로세스(process)나 태스크(task) 라고 한다. - Scheduling / execution (실행의 단위로써 프로세스가 존재) 한 프로세스는 다른 프로세스들과 번갈아가면서 수행될 수 있다. 디스패칭 단위는 쓰레드(thread) 또는 경량 프로세스(lightweight process)라고 불린다. *디스패치 : 한 프로세스로 부터 다른 프로세스로 교체(switch) 하는 과정 Multithreading(멀티 쓰레딩) 운영체제가 하나의 프로세스 내에서 수행되는 여러개의 쓰레드를..
말동말동현
'🖥️ Computer Science/Operating System' 카테고리의 글 목록