728x90
반응형

컴퓨터(Computer Science) 205

다중 스레드 모델, 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 실행되는 동안 프로세스는 여러 개의 새로운 프로세스들을 생성할 수 있다. 그림을..

프로세스 스케줄링(Process scheduling)이란?

뭐 더 자세히 알아봐야겠지만 살짝 맛만보고가자 • Maximize CPU use, quickly switch processes onto CPU for time sharing • Process scheduler selects among available processes for next execution on CPU • Maintains scheduling queues of processes 다중 프로그래밍의 목적은 CPU의 이용을 최대화하려는 데에 있다. 시분할(TIme sharing)의 목적은 각 프로그램이 실행되는 동안 사용자가 상호 작용할 수 있도록 프로세스들 사이에서 CPU 코어를 빈번하게 교체하는 것이다, 이 2가지 목적을 달성하기 위해서 프로세스 스케줄러(process sceheduler)가 ..

프로세스(process)란 무엇인가? [운영체제]

쉽게 말하자면 프로세스란 실행 중인 프로그램을 말한다. 자세히 알아보자 운영체제의 주 목적은 사용자 프로그램을 실행하는 것이지만 커널 안에서 보다 사용자 공간에서 가장 잘 할 수 있는 다양한 시스템 작업을 할 필요가 있다. 그래서 하나의 시스템은 일부는 사용자 코드를 실행하고 나머지는 운영체제 코드를 실행하는 프로세스들의 집합체이다. 우선 그림을 보고가자면 이 그림은 프로세스 메모리 배치의 그림이다. **컴퓨터 구조에서 많이 봤다면 같은 것이다. 다시 말하겠다. 프로세스란 실행 중인 프로그램이다. 프로세스의 현재의 상태는 프로그램 카운터(PC) 값과 나머지 프로세서 레지스터의 내용으로 나타낸다. 1. Text: the executable code 실행 코드가 들어간다. 2. Data: global var..

Multiprogramming vs Multitasking 멀티프로그래밍과 멀티태스킹의 차이

한글로는 다중 프로그래밍, 다중 태스킹이라고도 하는데 사실 용어가 중요한 것이 아니라 개념이 중요한 것이니까 한 번 알아보자 하나의 프로그램으로는 CPU나 I/O 장치를 항상 바쁘게 할 수 없다. -> I/O 유휴상태가 발생한다 다시 말해서, 계속 작동하게 할 수 없다는 말이다. ++그래서 사람들이 생각했다. 그럼 사용 안하는 시간에 다른 프로그램도 돌릴 수 있지 않을까?? 그래서 한 번에 둘 이상의 프로그램을 돌리는 것이 바로 다중프로그래밍이다. (Multiprogramming) CPU가 항상 한 개의 프로그램을 돌릴 수 있게 해서 CPU의 이용률을 높인 것이다. ++ 한 프로그램이 이용안 할 때 다른 프로그램이 실행된다는 뜻이다. ** 우리는 Multiprogramming에서 실행중인 프로그램을 프로..

프로세스에서의 동기화 (Process Synchronization) [운영체제]

프로세스 동기화를 왜할까...? 우리 컴퓨터는 사실 여러가지의 프로세스가 진행중이기 때문에 실행 중인 다른 프로세스의 실행에 영향을 주거나 받을 수 있다. • Processes can execute concurrently • May be interrupted at any time, partially completing execution • Concurrent access to shared data may result in data inconsistency • Maintaining data consistency requires mechanisms to ensure the orderly execution of cooperating processes 우리는 이미 프로세스가 병렬로 실행 가능하다는 것을 알고있다..

동기화, 모니터 : Synchronization, Monitor [운영체제]

세마포를 기반으로 이해하면 된다. [컴퓨터(Computer Science)/운영체제(Operation System)] - 동기화, 세마포 : Synchronization, Semaphores [운영체제] • A high-level abstraction that provides a convenient and effective mechanism for process synchronization • Abstract data type, internal variables only accessible by code within the procedure • Only one process may be active within the monitor at a time • But not powerful enough to m..

Critical Section, 임계구역이란? [운영체제]

프로세스를 먼저 알고가자. [CS Interview] - Process, 프로세스란? 협력적 프로세스는 시스템 내에서 실행 중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스다. 협력적 프로세스는 논리 주소 공간(코드 및 데이터)을 직접 공유하거나 공유 메모리 또는 메시지 전달을 통해서만 데이터를 공유할 수 있다. 즉, 쉽게 말하자면 협력적인 순차적 프로세스 또는 스레드로 구성된 시스템에서는 서로 비동기적으로 수행하면서 데이터를 공유할 가능성이 있다. 그렇게 된다면 부정확한 상태에 도달한다. 예를 들면 2 개의 프로세스가 동시에 변수 x을 조작하도록 허용한다는 그런 경우가 생기는 것이다. 실행 결과가 접근이 발생한 특정 순서에 의존하는 상황을 경쟁 상황(race condition)이라고 하는..

728x90
반응형