728x90
반응형

컴퓨터(Computer Science)/운영체제(Operation System) 34

동기화, 세마포 : Synchronization, Semaphores [운영체제]

많은 쇼프트웨어적 동기화 도구들이 있지만 우선 Semaphores, 세마포를 알아보자 이 글은 프로세스와 동기화, 임계구역에 대한 이해를 바탕으로 쓰는 글이다. [CS Interview] - Process, 프로세스란? [컴퓨터(Computer Science)/운영체제(Operation System)] - Critical Section, 임계구역이란? [운영체제] [컴퓨터(Computer Science)/운영체제(Operation System)] - 프로세스에서의 동기화 (Process Synchronization) [운영체제] **추가예시 [컴퓨터(Computer Science)/시스템 프로그래밍(System Programming)] - 세마포어,Semaphores 그 쓰임과 예시 Semaphores,..

CPU 스케줄링 알고리즘, Scheduling Algorithms [운영체제]

여러가지 알고리즘이 있는데? 몇 개만 맛만 보자 CPU 스케줄링은 준비 큐에 있는 어느 프로세스에 CPU 코어를 할당할 것인지를 결정하는 문제를 다룬다. 여러 가지 다른 CPU스케줄링 알고리즘들이 있다. 1. 선입 선처리 스케줄링 (First Come First-Served Scheduling) 2. 최단 작업 우선 스케줄링(Shortest-Job-First Scheduling) 3. 라운드 로빈 스케줄링(Round-Robin Scheduling) 4. 우선순위 스케줄링(Priority Scheduling) 5. 다단계 큐 스케줄링(Multilevel Queue Scheduling 6. 다단계 피드백 큐 스케줄링(Multilevel Feedback Queue Scheduling) 몇개만 보자 **알고 들..

CPU Scheduling criteria, 스케줄링 기준 [운영체제]

당연히 아무거나 스케줄링을 하진 않는다. 아무거나하면 효율적으로 나올리가 있나?? 당연히 없다. 스케줄링 알고리즘이 여러가지가 있는데 걔네들은 뭘 기준으로 짠걸까?? 기준 알아보자 우선 우리가 배운 것들을 알아보면? 5가지가 있다. • CPU utilization – keep the CPU as busy as possible • Throughput – # of processes that complete their execution per time unit • Turnaround time – amount of time to execute a particular process • Waiting time – amount of time a process has been waiting in the ready qu..

CPU Scheduling 스케줄링, 기본 개념 [운영체제]

CPU 스케줄링은 다중 프로그램 운영체제의 기본이 된다. 정말 중요하고, 앞으로도 중요하고 언제나 중요할 것이다. 가보자 프로세스를 전 글에서 소개한 적이 있는데 운영체제는 실질적으로는 프로세스가 아니라 커널 수준의 스레드를 스케줄하는 것이다. 프로세스 스케줄링과 스레드 스케줄링은 구분이 거의 무의미하게 되었다. 그렇지만 배울 때는 따로 언급할 것이니 참고하고 가자 진짜 기본부터 가자 코어가 하나인 시스템에서는 한 순간에 하나의 프로세스만 실행가능하다고 했다. 나머지 프로세스는 대기한다고 말했다. 그런데 우리는 다중 프로그래밍을 활용해 CPU의 이용률을 높이려고 시도한다고 했다. 다시 말하자면 CPU의 사용을 항상 바쁘게 하는 개념은 시스템의 모든 처리 코어로 확장된다. **스케줄링은 운영체제의 기본적인..

프로세스 간 통신, Interprocess Commnunication/IPC

통신이란게 별 거 없다. 그냥 뭔가 주고 받는 것을 통신이라고 한다. 프로세스끼리 뭔가 주고 받는 갑다 하고 보자 • Processes within a system may be independent or cooperating • Independent process cannot affect or be affected by the execution of another process • Cooperating process can affect or be affected by the execution of another process • Cooperating process can affect or be affected by other processes, including sharing data • Reasons ..

스레드 라이브러리?? Thread library

라이브러리 도서관 아니고 아 근데 라이브러리 도서관처럼 책이 모여있다고 하면 뭐 비슷할 수도 있겠다. 스레드 라이브러리라는 것은 프로그래머에게 스레드를 생성하고 관리하기 위한 API를 제공하는 것이다. 첫 번째 방법은 커널의 지원 없이 완전히 사용자 공간에서만 라이브러리를 제공하는 것이다. 라이브러리를 위한 모든 코드와 자료구조는 사용자 공간에 존재한다. 그렇게 되면 라이브러리의 함수를 호출하는 것은 시스템 콜이 아니라 사용자 공간의 지역 함수를 호출하게 된다는 것이다. 두 번째 방법은 운영체제에 의해 지원되는 커널 수준의 라이브러리를 구현하는 것이다. 이 경우에는 라이브러리를 위한 코드와 자료구조는 커널 공간에 존재한다. 그렇게 되면 라이브러리 API를 호출하는 것은 커널 시스템 콜을 하는 것과 같아진..

다중 스레드 모델, Multithreading Models

이제 진짜 다중 스레드에 대해서 알아보려고 한다. 그래서 스레드도 2개의 종류로 나눠서 살펴보려고 한다. 한 번 보자 • User threads - management done by user-level threads library • Three primary thread libraries: POSIX Pthreads Windows threads Java threads • Kernel threads - Supported by the Kernel Examples – virtually all general purpose operating systems, including: Windows Solaris Linux Tru64 UNIX Mac OS X 사용자 스레드(User threads) , 커널 스레드(Kern..

다중 코어 프로그래밍 (Multicore programming)

영어도 보다보면 익숙해진다 보고가자 • Types of parallelism Data parallelism – distributes subsets of the same data across multiple cores, same operation on each Task parallelism – distributing threads across cores, each thread performing unique operation • As # of threads grows, so does architectural support for threading CPUs have cores as well as hardware threads Consider Oracle SPARC T4 with 8 cores, and 8 h..

스레드,Thread [운영체제]

스레드를 프로세스에 대해 공부하다보면 알게 되는데,, 그리고 뭐 맨날 컴퓨터 성능보면 8코어 16스레드뭐시기 하는데 뭘까 싶기도 하고 그래서 알아보자 우선 스레드는 CPU 이용의 기본 단위다. 다시 더 나누면 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합, 그리고 스택으로 나눠진다. 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션 그리고 열린 파일이나 신호화 같은 운영체제 자원들을 공유한다. 단일 스레드가 기본이지만 당연히 다중 스레드도 있다. 차례대로 알아보자 ** 그냥 프로세스 여러개 돌리면 되는거 아냐??? 라고 할 수 있기도 하지만.. 1. 멀티 프로세스 -> 멀티 스레드로 실행할 경우 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효율적으로 관리가능 2..

Process Life Cycle, 프로세스 생성부터 종료까지

프로세스에 대해 살짝 알아봤는데 그럼 0부터 1이 어떻게 되느냐?? 아니면 원래부터 프로세스가 있어서 프로세스가 프로세스를 만드는거냐?? 의문이 들텐데 한 번 알아보자 우선 대부분 시스템 내의 프로세스들은 병렬 실행이 가능하다. parallel적으로 실행 가능하다. 반드시 동적으로 생성되고, 제거되어야 한다. 그래서 운영체제는 프로세스 생성 및 종료를 위한 기법을 제공한다. 알아보자 The system must provide mechanisms for process creation, process termination, and so on as detailed next 프로세스 생성부터 알아보자, process creation 실행되는 동안 프로세스는 여러 개의 새로운 프로세스들을 생성할 수 있다. 그림을..

728x90
반응형