상세 컨텐츠

본문 제목

6. 멀티스레드와 동기화 기본 / CPU스케줄링 개요

CS전공 지식/1. OS

by 본투비곰손 2023. 6. 29. 22:35

본문

728x90

 

리소스 효율을 위해 멀티스레드 사용

공통 요소들은 같이 사용, 스레드 마다 스택을 개별 사용 하고 지역 변수와 자동 변수가 사용 하고 1Mb

TBC(스레드 컨트롤 블록)을 가지고 있음

스레드도 상태에 따라 문맥 교환이 발생 된다.

멀티스레드로 실행이 되면 공유된 자원을 사용하기 위해 레이스 컨디션(경쟁)이 발생된다.

 

스레드 동기화

프로세스는 자원과 데이터, 스레드로 구성되어 있다. 따라서 프로세스는 스레드가 운영체제로부터 자원을 할당받아 소스 코드를 실행하여 데이터를 처리한다.

만약, 싱글 스레드 프로세스라면, 공유 데이터에 단 하나의 스레드만이 접근하므로 문제가 될 것이 없다. 하지만, 멀티 스레드 프로세스의 경우, 두 개 이상의 스레드가 공유 데이터에 동시에 접근하게 되면 예상과 벗어난 결과가 타나날 수 있다.

이러한 문제를 해결해 주는 것이 바로 스레드 동기화다.

CPU스케줄링 개요

OS는 프로세스가 잘 작동하게 지원 해주기 위한 도구

고수준 스케줄링: 프로세스의 숫자 및 순서 관리 (job)

중간수준 스케줄링: 프로세스의 활성 및 보류 관리

저수준 스케줄링: 실행 프로세스의 세부 관리

부하 상태 관리

선점형: 어떤 프로세스가 선점하여 실행 중이더라도 운영체제가 강제로 다른 프로세스가 실행 될 수 있다. (일반적)

비선점형: 선점형과 반대의 개념으로 어떤 프로세스가 선점하여 실행 중이면 그 프로세스가 종료될 때 까지 다른 프로세스를 실행할 수 없다.

서버는 입출력 집중 프로세스 백그라운드 처리에 최적화

 

728x90

관련글 더보기