728x90 반응형 공부/OS9 [OS] 프로세스 동기화 문제 (세마포어) 프로세스는 공유 메모리를 사용하여 공통된 변수와 버퍼를 공유한다. 그런데 context switching을 통해 현재 cpu를 할당받은 프로세스가 달라지면 공유 메모리에 동시에 접근하는 이슈가 발생할 수 있다. 이를 동기화 이슈라고 한다. 동기화 이슈 예를 들어서 A와 B가 100만원이 들어있는 같은 통장에 10만원씩 예금했다고 해보자. 10만원을 예금하는 코드의 구성은 다음과 같다. 통장의 총 금액을 가져온다. 해당 금액에 10만원을 추가한다. 추가한 금액을 통장에 저장한다. 멀티 프로세스 환경에서는 프로세스를 동시에 실행할 수 없다보니 두 프로세스를 조금씩 번갈아가면서 실행하게 된다. 그런데 다음과 같이 context switching이 발생할 수 있다. (빨간색이 프로세스 A, 초록색이 프로세스 B.. 2023. 5. 27. [OS] 쓰레드의 개념과 프로세스와의 차이 https://growth-coder.tistory.com/139 [OS] 프로그램과 프로세스의 차이 및 프로세스 구조 프로그램과 프로세스의 차이 프로그램과 프로세스는 혼동하기 쉬운데 둘은 엄연히 다르다. 프로그램은 특정 목적을 수행하기 위한 명령문들의 집합이다. 또한 컴파일된 결과물이 디스크에 저 growth-coder.tistory.com 이전 포스팅에서 프로세스의 구조에 대해서 알아보았다. 이번 포스팅에서는 프로세스 내부에서 실행되는 쓰레드에 대해서 포스팅 해보려고 한다. 쓰레드는 프로세스와 마찬가지로 cpu의 작업 단위이다. 프로세스 내부에서 실행되는 흐름의 단위라고 보면 된다. 하나의 프로세스 내부에서는 여러 개의 쓰레드가 실행될 수 있고 여러 개의 쓰레드를 가지는 프로세스를 멀티 쓰레드 프로세.. 2023. 5. 25. [OS] CPU Scheduling와 프로세스 상태도 다음은 다섯 개의 state가 존재하는 프로세스의 상태도이다. CPU가 하나 당 프로세스는 하나만 실행할 수 있다. 동시에 여러 개를 실행할 수는 없다. 그러나 단일 CPU이어도 여러 프로그램을 실행할 수 있다. 여러 프로세스가 돌아갈 때 한 프로세스가 끝날 때까지 기다렸다가 다음 프로세스가 실행된다면 많은 시간이 걸릴 뿐더러 동시에 여러 프로세스를 실행한다고 보기 어려울 것이다. 그래서 CPU가 이 프로세스들에게 일정 시간(time quantum)을 부여한 다음 그 시간을 다 사용한다면 잠시 멈췄다가 그 다음 프로세스에게 일정 시간(time quantum)을 부여한다. 이를 담당하는 것이 CPU 스케줄러이고 이렇게 프로세스를 관리하는 과정을 cpu 스케줄링이라고 한다. 이러한 과정이 진행될 때 프로세스.. 2023. 5. 23. [OS] 일괄 처리 시스템, 다중 프로그래밍 시스템, 시분할 시스템, 다중 프로세서 시스템 일괄 처리 시스템 (batch processing) 문자 그대로 비슷한 작업들을 모아서 일괄 처리 하는 시스템이다. 입출력 장치의 속도가 느려서 cpu가 일을 쉬는 경우가 많았다. 다중 프로그래밍 시스템 (multi programming system) 여러 개의 프로그램을 메모리에 적재하여 실행하는데 하나를 실행하다 대기 상태가 되면 다른 프로그램을 실행한다. 하나의 프로그램을 실행하다가 입출력과 관련된 작업이 실행되면 대기 상태가 되고 이 때 다른 프로그램을 실행하는 것이다. 일괄 처리 시스템과 달리 입출력 장치가 일을 하는 동안 cpu가 쉬는 것이 아니라 다른 프로그램에 대해서 일을 계속 하기 때문에 cpu 사용 효율이 증가한다. 이 시스템에서 운영체제는 작업 스케줄링과 cpu 스케줄링을 진행한다. .. 2023. 3. 29. 이전 1 2 3 다음 728x90 반응형