일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Heap
- 디자인 패턴
- react
- Galera Cluster
- C
- 알고리즘
- OS
- 운영체제
- Data Structure
- MSA
- MySQL
- mongoDB
- 자료구조
- JPA
- Java
- Proxy
- redis
- Spring
- 컴퓨터구조
- 백준
- JavaScript
- Algorithm
- 파이썬
- c언어
- spring webflux
- IT
- Kafka
- 자바
- design pattern
- 네트워크
- Today
- Total
목록운영체제 (22)
시냅스

프로세스 동기화 Process Synchronization Cooperation process 서로 영향을 주는 process thread를 공유하거나, shared memory massage passing 위의 경우 데이터 일관성에 유의해야 한다 => 실행 순서를 보장해야 한다. (Integrity of Data) producer - consumer problem while(true) { /* produce an item in next_produced */ while (count == BUFFER_SIZE) ; /* do nothing */ buffer[in] = next_produced; in = (in + 1) % BUFFER_SIZE; count++; } while(true) { while (co..

실시간 CPU 스케줄링 Real-Time CPU Scheduling real time : 주어진 시간 내에 task 완료 연성(soft) 실시간 vs 경성(hard) 실시간 연성 실시간 soft real time 크리티컬한 process를 실시간 처리 완료를 보장하지 않는다. 하지만 처리시간은 nonciritical process 보단 짧다. 경성 실시간 hard real time deadline 시간을 꼭 지킨다. -> priority-base 지연시간 최소화 Minimizing Latency 이벤트 지연시간 : 이벤트가 발생해서 그에 맞는 서비스가 수행될 때까지의 시간 인터럽트 지연시간 인터럽트가 발생한 시점부터 해당 인터럽트 처리 루틴이 시작하기까지의 시간 현재 수행중인 PCB를 저장하기 까지의 시..
다중 처리기 스케줄링 Muliple-Processor Scheduling 여러 스레드가 병렬로 실행되어 부하 공유(load sharing)이 가능하다. 그러나, 스케줄링 문제는 그에 상응하여 더욱 복잡해진다. 다중 처리기 스케줄링에 대한 접근 방법 Approach to Multiple-Processor Scheduling 비대칭 다중 처리 : 하나의 처리기가 마스터 서버로 모든 스케줄링 결정과 I/O 처리, 다른 시스템의 활동을 취급하게 하는 것 단점은 마스터 서버가 전체 시스템 성능을 저하할 수 있는 병목이 된다는 점이다. 대칭 다중 처리 (SMP) : 표준 방법으로, 각 프로세스가 스스로 스케줄링을 할 수 있다. 모든 스레드가 공통 준비 큐에 있을 수 있다. 경쟁 조건으로부터 공통 Ready Queu..
스레드 스케줄링 Thread Scheduling 스케줄 되는 대상은 프로세스가 아니라 커널 수준 스레드이다. 유저 스레드는 라이브러리에 의해 관리되고 커널은 유저 스레드의 존재를 알지 못한다. 경쟁 범위 Contention Scope 유저 스레드는 LWP 상에서 스케줄하기 때문에 동일한 프로세스에 속한 스레드들 사이에서 CPU 경쟁을 프로세스 경쟁 범위 (PCS)로 알려져 있다. LWP상에서 스케줄 한다고 해도 실행 중이라는 것을 의미하지 않는다. 실제 실행을 위해서는 LWP의 커널 스레드를 물리적인 CPU 코어로 스케줄 하는 것을 필요로 하기 때문 CPU 상에 어느 커널 스레드를 CPU 코어로 스케줄할 지 결정하기 위해서 시스템 경쟁 범위 (SCS)를 사용한다. 주석 : LWP가 경쟁하면 -> PSC,..

스케줄링 알고리즘 (Scheduling algorithm) 준비 큐에 있는 어느 프로세스에 CPU 코어를 할당할 것인지를 결정 CPU Scheduling 문제점의 Solution FCFS : First come, Fist Seerved SJF : Shortest Job First (SRTF : Shortest Remaning Time First) RR : Round Robin, Time Sharing Priority Based MLQ : Multi Level Queue MLFQ : Multi Level Feedback Queue FCFS 가장 간단, 먼저 요청 -> 먼저 할당 CPU burst time 에 따라서 Waiting time이 달라짐 Nonpreemptive Convoy Effect : 하나의..

CPU 스케줄링 CPU Scheduling 멀티프로그래밍의 목적 CPU 이용률 최대화 단일 코어라면, 빨간 박스의 상태에서 CPU는 I/O 요청이 완료될 때까지 유휴상태를 갖는다. -> 비효율적! 대기 시간 최소화 CPU - I/O 버스트 사이클 CPU Scheduler CPU가 유휴 상태가 될 때마다 Ready queue에 있는 프로세스를 하나 선택한다. 선택 절차는 CPU Scheduler에 의해 선택된다. Queue에 있는 레코드들은 일반적으로 PCB이다. 선택 방법 FIFO Queue Linked list, Binary list Priority Queue Preemptive(선점형) vs Nonpreemptive(비선점형) preemptive 조건에 의해서 스케쥴러가 context switch를 ..
멀티 쓰레딩 cpu를 넘나들 수 없음, 커널 support 없음 user thread : e.g. Java Kerner thread 코어에서 직접 쓰레딩을 할 수 있게 관리 한다. 운영체제가 직접 manage 다중 쓰레드 Multithreading models many to one : 가장 기본, 여러 유저 쓰레드 대 하나의 커널 쓰레드 one to one many to many 스레드 라이브러리 Threads Library 스레드 create manage하는 API 제공 POSIX Pthreads Windows thread Java thread : 운영체제에 따라 POSIX Pthread or Windows thread, 운영체제에 종속적이다. 암묵적 스레딩 implitcit threading 병행, ..
Thread cpu 점유의 기본 단위 구성 : tid, PC, 레지스터 집합, 스택 cpu 점유는 pid 내부의 tid가 한다. 스레드 간에는 코드, 데이터 파일을 공유한다. Multithreading 장점 응답성 : 봉쇄되거나 긴 작업이 수행돼도 쓰레드를 생성해 명령 수행 자원 공유 : code와 data, file을 공유해 사용 가능 경제성 : 프로세스를 여러개 만드는 것보다 경제적, context switching에 있어서도 마찬가지이다. 확장성 : 멀티 프로세스 아키텍쳐에서 병렬처리 가능 멀티코어, 멀티프로세싱 안에서의 멀티쓰레딩 병행성 양상 쓰레드가 여러개인 상황을 가정 싱글코어 : 시간에 따라 인터리빙(사이사이 끼어 넣는다 e.g. 시분할) 멀티코어 : 병렬적 수행 멀티코어에서 도전과제 iid..
POSIX 공유 메모리 : 메모리 - 사상 파일을 사용하여 구현된다, 메모리 - 사상 파일은 공유 메모리 특정 영역을 연관 시킨다. Mach 메세지 전달 대부분의 통신은 메세지로 수행된다. Port로 메세지를 주고 받는다. 포트는 크기가 정해져 있고 단방향이다. 양방향 통신의 경우, 메세지가 한 포트로 전송되고 응답이 별도의 응답 포트로 전송된다. 각 포트에는 여러 송신자가 있을 수 있지만 수신자는 오직 하나. 포트를 사용하여 태스크, 스레드, 메모리 및 프로세서와 같은 자원을 나타낸다. 각 포트에는 그 포트와 상호 작용하는데 필요한 자격을 식별하는 포트 권한이 필요 태스크가 생성되면 Task self 포트와 Notify 포트 생성 커널은 Task Self 포트에 대한 수신 권한이 있어 태스크가 커널에 ..
프로세스 간 통신 (Interprocess Communication) 독립적 : 프로세스 간 데이터 통신 X 협력적 프로세스 간 영향을 주거나 받음 프로세스 간 통신 기법 IPC 공유 메모리 시스템에서의 프로세스 간 통신 (IPC in Shared-Memoty Systems) 공유 메모리 영역을 통해 통신한다. 공유 메모리 공간을 사용하기 위해선 자신의 주소 공간에 포함시켜야 한다. 일반적으로 운영체제는 한 프로세스가 다른 프로세스의 메모리에 접근하는 것을 금지해야하지만 이 제약 조건을 제거한다. Producer - Consumer Problem 생사자는 정보를 제공하고 소비자는 소비하는 모델 Compler(생산) -> assembly code -> Assembler(소비) Browser(소비) Web ..