CS/운영체제 (28) 썸네일형 리스트형 Context Switching(문맥교환)이란? 문맥교환? 먼저 간략하게 PCB를 알고 갑시다. 프로세스가 생성되면 같이 생성되는 블록 상태, 프로세스 넘버, 명령어, 레지스터가 포함되어 있다. Context Switching을 할 때 필요한 정보를 담고 있다. PCB는 왜 필요한거야? CPU에서는 프로세스의 상태에 따라 교체작업이 이루어지는데, 이때 앞으로 다시 수행할 대기중인 프로세스에 관한 저장 값을 PCB에 저장해두는 것이다. 교체작업 intterupt가 발생해서 할당받은 프로세스가 waiting상태가 되고 다른 프로세스를 running으로 바꿔 올릴 때 Context Switching이란? 현재 진행하고 있는 프로세스,스레드의 상태를 저장하고 다음 진행할 태스크의 상태 값을 읽어 적용하는 과정을 말합니다. 왜 Context Switching이.. 동기화(Synchronous)와 세마포어(Semaphore)와 뮤텍스(Mutex) 동기화? 한정적인 시스템 자원에 여러 스레드가 동시에 접근해서 사용시 문제가 발생 여러 스레드에게 하나의 자원에 대한 처리 권한을 주거나 순서를 조정하는 기법 스레드 동기화 스레드의 실행 순서를 정의 메모리 접근에 있어서 동시 접근을 막음 실행 순서보다는 한 순간 하나의 스레드만 해당 자원에 접근 동기화 기법 유저 모드(User mode)의 동기화 1. 임계 구역 기반의 동기화 열쇠를 얻은 프로세스만 임계 구역에 들어갈 수 있다. 한번에 하나의 스레드만이 접근 임계 구역 진입을 위해 임계 구역 오브젝트(key)를 얻는다. 다른 스레드가 열쇠를 갖고 있을 경우, 열쇠 반환전까지 블로킹(blocking) 열쇠가 반환되면 블로킹 상태에서 빠져나와 열쇠를 얻고 임계구역에 접근 2. 인터락 함수 기반 동기화 함수.. Multi Process & Multi Thread ??! 멀티 프로세스? 멀티 스레드? 멀티 프로세스 멀티스레드의 차이점 Multi Process(멀티 프로세스) 하나의 프로그램을 여러 프로그램으로 구성하여 각 프로세스가 하나의 작업을 처리한다 이것을 병렬처리라고 한다. 장점 프로세스중 하나에 문제가 발생해도 다른 프로세스에 영향이 없다.(안전성) 단점 Context Switching에서의 비용이 크다. 각 프로세스가 자원을 독립적으로 갖고 있어서 각각 비용을 처리해야 하기 때문이다. IPC를 사용한 통신. 프로세스는 독립적인 메모리 공간으로 변수 공유가 되지 않아 IPC를 사용해 통신을 해야한다. IPC(Inter Process Communication) 프로세스는 독립적(다른 프로세스에게 영향을 받지 않음)으로 실행되며, 독립적 구조를 가진 프로세스 간의 .. 프로그램(Program) & 프로세스(Process) & 스레드(Thread) 0. 프로세스와 스레드로 가는 길 1. Program 파일이 저장 장치(DISK)에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 2. Process 자신만의 고유 공간과 자원을 할당받아 사용하는 작업의 단위 디스크에 있던 프로그램을 메모리에 적재하여 운영체제의 제어를 받게 된 상태 Code, Data, Stack, Heap으로 구성되어 있는 독립된 메모리 영역 한 개의 프로세스당 최소 한 개의 메인 스레드를 갖고 있다. 한 프로세스는 다른 프로세스의 변수, 자료구조같은 메모리에 직접 접근이 불가능하다. 메모리에 접근하기 위해선 IPC(inter Process Communication)을 사용해야 한다. 3. Thread 프로세스 내에서 실행되는 흐름의 단위, 다른 스레드와 프로세스의 자원과 .. 이전 1 2 3 4 다음