본문 바로가기
728x90

프로세스4

[OS] 임계구역, 임계구역 해결 공유 자원 shared resource 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등 공동으로 이용되기 때문에 프로세스들의 접근 순서를 정하여 예상치 못한 문제가 발생하지 않도록 해야함 경쟁 조건 (race condition) : 2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황 임계구역 critical section 공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역 임계구역에서는 프로세스들이 동시에 작업하면 안 됨 - 생산자-소비자 문제 (producer-consumer problem) 생산자는 계속 물건을 생산해 버퍼에 넣고 : input(buf) 소비자는 계속 버퍼에서 물건을 가져온다 : output(buf) 버퍼는 작업을 계속하기 위해 원형 버퍼(circ.. 2021. 12. 6.
[OS] CPU 스케줄링 CPU 스케줄링 CPU 스케줄러 : 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 함 스케줄링 : 여러 프로세스의 상황을 고려하여 CPU와 시스템 자원을 어떻게 배정할지 결정하는 일 스케줄링의 단계 - 고수준 스케줄링 고수준(high level), 장기(long-term), 작업(job), 승인(admission) 스케줄링 가장 큰 틀에서 이루어지는 CPU 스케줄링 전체 작업의 수를 조절 (작업 : 일의 가장 큰 단위, 1개 또는 여러 개의 프로세스로 이루어짐) 시스템 내에서 동시에 실행 가능한 프로세스의 총 개수 결정 - 저수준 스케줄링 저수준(low level), 단기(short-term) 스케줄링 가장 작은 단위의 스케줄링 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대.. 2021. 12. 2.
[OS] 스레드 프로세스와 스레드 프로세스 스레드 운영체제 입장에서 작업 단위 CPU 입장에서 작업 단위 서로 독립적 프로세스A가 비정상 종료되어도 프로세스B는 정상 작동 서로 강하게 연결 프로세스가 종료되면 프로세스 내의 스레드도 강제종료 데이터를 주고 받을 때, 프로세스 간 통신(IPC) 이용 변수, 파일을 공유하고 전역 변수나 함수 호출을 통해 통신 스레드 CPU 스케줄러가 CPU에 전달하는 일 하나 하나의 프로세스에는 여러 개의 스래드가 존재할 수 있음 - 관련 용어 멀티 스레드 : 프로세스 내 작업을 여러 개의 스레드로 분할함으로써 작업의 부담을 줄이는 프로세스 운영 기법 멀티 태스킹 : 운영체제가 CPU에 작업을 줄 때 시간을 잘게 나누어 배분하는 기법 (시분할 시스템) 멀티 프로세싱 : CPU를 여러 개 사.. 2021. 11. 2.
[OS] 프로세스 프로그램 vs 프로세스 - 프로그램 저장장치에 저장되어 있는 정적인 상태 - 프로세스 실행을 위해 메모리에 올라온 동적인 상태 프로그램으로 작성된 작업 절차를 실행에 옮김 하나의 작업 단위 (=태스크, task) - 프로그램에서 프로세스로 전환 프로그램이 운영체제로부터 프로세스 제어 블록 (PCB, Process Control Block)을 받으면 프로세스가 됨 프로세스 = 프로그램 + 프로세스 제어 블록 프로세스 상태 - 생성 상태 (create status) 프로그램이 메모리에 올라오고 운영체제로부터 프로세스 제어 블록 할당받은 상태 메모리 할당, 프로세스 제어 블록 생성 - 준비 상태 (ready status) 프로세스가 CPU를 얻을 때까지 기다리는 상태 프로세스 제어 블록은 준비 큐 (ready.. 2021. 11. 2.
728x90