본문 바로가기

CS 지식22

프로세스 동기화(Process Synchronization) 프로세스 동기화(Process Synchronization) 협력하는 프로세스 사이에서 실행 순서 규칙을 정하여 공유 자원의 일관성을 보장하는 것이다. 프로세스가 협력하며 공유 자원을 사용하는 상황에 경쟁조건(race conditioin)이 발생하면 공유 자원을 신뢰할 수 없게 되는데, 이를 방지하기 위해 공유 자원 사용 시 특별한 규칙을 정하는 것이 프로세스 동기화이다. 경쟁 조건(Race Condition) : 여러 프로세스(또는 스레드)가 공유 자원에 동시 접근할 때, 공유 자원에 대한 접근 순서에 따라 실행 결과가 달라질 수 있는 상황 임계 구역(Critical Section) : 여러 프로세스(또는 스레드)가 자원을 공유할 때, 하나의 프로세스(스레드)만 접근 가능하도록 제한해둔 코드 영역 임계.. 2023. 2. 6.
동기(Synchronous)와 비동기(Asynchronous) 동기(Synchronous) 요청과 그 결과가 동시에 일어나는 약속이므로, 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주여져야 한다. 직렬적으로 task 를 수행한다. A 노드와 B 노드 사이의 작업 처리 단위를 동시에 맞춰야 한다. 장점 : 설계가 매우 간단하고 직관적이다. 단점 : 결과가 주어질 때까지 아무것도 하지 못하고 대기해야 한다. 비동기(Asynchronous) 요청과 그 결과가 동시에 일어나지 않는 약속이므로, 요청을 하면 결과가 그 자리에서 주어지지 않는다. 병렬적으로 task 를 수행한다. 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다. 장점 : 결과가 주어지는 동안 다른 작업이 가능하기 때문에 자원을 효율적으로 사용할 수 있다. 단점 : 동기보다 복잡하여 결.. 2023. 2. 6.
[운영체제] 스케줄러 스케줄러(Scheduler) : 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중 하나를 선택하는 역할을 수행한다. 가장 자주 사용되는 스케줄러는 장기 스케줄러와 단기 스케줄러이며 주로 일괄처리 시스템에 사용된다. 장기 스케줄러(Long Term Schedular) 작업 스케줄러, 승인 스케줄러 라고도 부른다. 디스크 내의 작업을 어떤 순서로 메모리에 가져올지 결정한다. 디스크와 같은 저장장치에 작업들을 저장해둔 후, 필요할 때 실행할 작업을 작업 큐에서 꺼내 준비 큐를 통해 메인 메모리에 적재한다. 장기 스케줄러에 의해 new 상태에서 ready 상태로 전이를 승인한다. 단기 스케줄러(Short Term Scheduler) 프로세스 스케줄러, .. 2023. 2. 5.
멀티 프로세스와 멀티 스레드의 차이 멀티 프로세스(Multi Process) : 하나의 응용프로그램을 여러 개의 프로세스로 구성하며 여러 개의 프로세스가 협력하여 작업을 병렬처리 하는 것이다. 각 프로세스 간 메모리 구분이 필요하거나 독립된 주소 공간을 가져야 할 때 사용한다. 장점 독립된 구조이기 떄문에 안정성이 높다. 여러 프로세스 중 하나가 죽는다 해도 문제가 확산되지 않는다. 여러 개의 프로세스를 처리할 때 동일한 데이터를 사용하기 때문에 비용이 적게 든다. 단점 멀티 스레드보다 많은 메모리 공간과 CPU를 차지한다. 독립된 구조이기 때문에 작업량이 많을수록 오버헤드로 인한 성능 저하가 발생할 수 있다. 멀티 스레드(Multi Thread) : 하나의 작업을 위해 프로세스에서 여러 스레드를 생성해 자원을 공유하며 작업을 나누어 수행.. 2023. 1. 15.