operating system

Operating System Concepts 10th, 5.2장을 요약한 내용입니다. 스케줄링 기준 Scheduling Criteria 서로 다른 CPU 스케줄링 알고리즘들은 다른 특성이 있고, 프로세스와 상황에 맞는 다양한 알고리즘들의 특성을 고려해야 한다. CPU 스케줄링 알고리즘을 비교하기 위한 여러 기준은 다음과 같다. CPU 이용률 utilization 우리는 CPU가 최대한 바쁘게 유지되기를 원하고, 개념상 CPU 이용률은 0 ~ 100%까지 이른다. 실제 시스템에서는 40%(부하가 적은 시스템)에서 90%(부하가 큰 시스템)까지의 범위를 가져야 한다. 처리량 throughput 처리량은 단위 시간당 완료된 프로세스의 개수이다. 처리량이 긴 프로세스의 경우 처리량은 몇 초 동안 한 프로세스가..
Operating System Concepts 10th, 5.1장을 요약한 내용입니다. CPU 스케줄링 개념에 들어가기 앞서, 다중 프로그래밍의 목적을 알아보자 다중 프로그래밍은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로그램을 가지는 데에 목적이 있다. 이 목적을 달성하기 위해서는 다수의 프로세스를 메모리 내에 유지한다. 어떤 프로세스가 대기해야 할 경우, 운영체제는 CPU를 회수하여 다른 프로세스에게 할당한다. 이러한 종류의 스케줄링은 운영체제의 기본적인 기능이고, 대부분의 컴퓨터 자원들은 사용되기 전에 스케줄 된다. CPU는 컴퓨터의 중요한 자원이기 때문에 CPU의 스케줄링은 운영체제의 핵심이다. CPU - I/O 버스트 사이클 CPU - I/O Burst Cycle CPU 실행과 I/O ..
Operating System Concepts 10th, 4.4장을 요약한 내용입니다. 스레드 라이브러리(threads library)는 프로그래머에게 스레드를 생성하고 관리하기 위한 API를 제공한다. 스레드 라이브러리를 구현하는 데에는 주된 두 가지 방법이 있다. 커널의 자원 없이 완전히 사용자 공간에서만 라이브러리를 제공하는 것 라이브러리를 위한 모든 코드와 자료구조는 사용자 공간에 존재한다. 라이브러리의 함수를 호출하는 것은 시스템 콜이 아니라 사용자 공간의 지역 함수를 호출하게 되는 것을 의미한다. 운영체제에 의해 지원되는 커널 수준 라이브러리를 구현하는 것 라이브러리를 위한 코드와 자료구조는 커널 공간에 존재한다. 라이브러리 API를 호출하는 것은 커널 시스템 콜을 부르는 결과를 낳는다. 현재..
Operating System Concepts 10th, 3.7장을 요약한 내용입니다. 1. POSIX 공유 메모리 POSIX Shared Memory POSIX 공유 메모리는 메모리-사상(memory-mapped) 파일을 사용하여 구현된다. 메모리-사상 파일은 공유 메모리의 특정 영역을 파일과 연관시킨다. fd = shm_open(name, O_CREAT | O_RDWR, 0666); 먼저 프로세스는 shm_open 시스템 콜을 사용하여 공유 메모리 객체를 생성해야 한다. shm_open() 이 성공하면 공유 메모리 객체를 나타내는 정수형 파일 설명자를 반환한다. // 객체의 크기를 4096바이트 크기로 설정한다. ftruncate(fd, 4096); 객체가 설정되면 객체의 크기를 바이트 단위로 설정한..
Operating System Concepts 10th, 3.5장을 요약한 내용입니다. 공유 메모리 시스템에서의 프로세스 간 통신 개념 공유 메모리를 사용하는 프로세스 간 통신에서는 통신하는 프로세스들이 공유 메모리 영역을 구축해야 한다. 통상 공유 메모리 영역은 공유 메모리 세그먼트를 생성하는 프로세스의 주소 공간에 위치한다. 공유 메모리 세그먼트를 이용하여 통신하려는 다른 프로세스들은 이 세그먼트를 자신의 주소 공간에 추가해야 한다. 일반적으로 운영체제는 한 프로세스가 다른 프로세스의 메모리에 접근하는 것을 금지한다. 공유 메모리는 둘 이상의 프로세스가 이 제약 조건을 제거하는 것에 동의해야 한다. 그 이후, 프로세스들은 공유 영역에 읽고 씀으로써 정보를 교환할 수 있다. 데이터의 형식과 위치는 이들..
Operating System Concepts 10th, 3.4장을 요약한 내용입니다. 1. 독립적이거나 협력적인 프로세스 운영체제 내에서 실행되는 병행 프로세스들은 독립적이거나 협력적인 프로세스들일 수 있다. 시스템에서 실행중인 다른 프로세스들과 데이터를 공유하지 않는다면 독립적인 프로세스이다. 시스템에서 실행 중인 다른 프로세스들에 영향을 주고 받는다면 협력적인 프로세스이다. 다른 프로세스들과 자료를 공유한다면 상호 협력적인 프로세스이다. 2. 프로세스 협력을 제공하는 이유 프로세스 협력을 허용하는 환경을 제공하는 이유는 아래와 같다. 정보 공유 (information sharing) 여러 응용 프로그램이 동일한 정보를 원할수 있으므로, 병행적으로 접근할 수 있는 환경을 제공해야 한다. (예로는 복사..
Operating System Concepts 10th, 3.2장을 요약한 내용입니다. 1. 프로세스 스케줄러의 목적 다중 프로그래밍의 목적 CPU 이용을 최대화하기 위해 항상 어떤 프로그램을 실행되도록 하는 데 있다. 시분할의 목적 프로그램이 실행되는 동안 사용자가 상호작용할 수 있도록 프로세스들 사이에서 CPU 코어를 빈번하게 교체하는 것이다. 위 목적을 달성하기 위해 프로세스 스케줄러는 실행 가능한 여러 프로세스 중에서 하나의 프로세스를 선택한다. CPU 코어는 한 번에 하나의 프로세스만 실행시킬 수 있어 아래와 같은 경우를 생각해야 한다. 단일 CPU 코어 시스템인 경우 한 번에 2개 이상의 프로세스를 수행할 수 없다. 다중 코어 시스템은 경우 한 번에 여러 프로세스를 수행할 수 있지만, 코어보다..
Operating System Concepts 10th, 3.1장을 요약한 내용입니다. 1. 프로세스 (The Process) 프로세스란 프로세스는 실행 중인 프로그램이다. 프로세스의 현재 활동 상태는 프로그램 카운터 값과 프로세서 레지스터의 내용으로 나타낸다. 프로세스 메모리 배치는 일반적으로 여러 섹션으로 구분된다. 프로세스 메모리 배치 텍스트 섹션: 실행 코드 데이터 섹션: 전역 변수 힙 섹션: 프로그램 실행 중에 동적으로 할당되는 메모리 스택 섹션: 함수를 호출할 때 임시 데이터 저장 장소 (예: 함수 매개변수, 복귀 주소 및 지역 변수) 텍스트 및 데이터 섹션의 크기는 고정되기 때문에 프로그램 실행 동안 크기가 변하지 않는다. 스택 및 힙 섹션은 프로그램 실행 중에 동적으로 줄어들거나 커질 수 ..
기중
'operating system' 태그의 글 목록