운영체제3 임계 영역, 뮤텍스, 세마포어 임계 영역(Critical Section) 공유 자원에 접근하는 코드영역을 말하며 여러 프로세스 또는 스레드가 동시에 접근 시 문제가 발생할수 있으므로 독점을 보장해줘야 하는 영역이다. 뮤텍스 공유자원을 안전하게 관리하기위한 상호배제 기법으로 상호 배제(Mutual Exclusion)의 약자이다. 락을 활용해 임계 영역에 진입전 락을 획득하고 임계 영역을 빠져나올때 락을 해제하여 다른 프로세스 또는 스레드의 접근을 허용하게한다. 1개만 임계 영역에 접근하게 하는 기법이다. 세마포어 공유자원에 동시 접근 가능한 개수를 지정하여 관리하는 상호 배제 기법으로 개수 제한이 1이면 뮤텍스와 동일한 역할을 한다. 값이 2이상이면 여러개가 임계 영역에 접근 할수 있는 기법이다. Reference https://wor.. 2023. 10. 29. 멀티프로세스 vs 멀티 스레드 멀티 프로세스 멀티 프로세스는 운영체제에서 하나의 응용 프로그램에 대해 동시에 여러 개의 프로세스를 실행할 수 있게 하는 기술을 말한다. 보통 하나의 프로그램 실행에 대해 하나의 프로세스가 메모리에 생성되지만, 부가적인 기능을 위해 여러개의 프로세스를 생성하는 것이다. 멀티 프로세스 내부를 보면, 하나의 부모 프로세스가 여러 개의 자식 프로세스를 생성함으로서 다중 프로세스를 구성하는 구조이다. 한 프로세스는 실행되는 도중 프로세스 생성 시스템 콜을 통해 새로운 프로세스들을 생성할 수 있는데, 다른 프로세스를 생성하는 프로세스를 부모 프로세스(Parent Process)라 하고, 다른 프로세스에 의해 생성된 프로세스를 자식 프로세스(Child Process)라 한다. 부모 프로세스와 자식 프로세스는 각각 .. 2023. 10. 24. [운영체제] 프로그램, 프로세스, 스레드 프로그램(Program) ? 컴퓨터에서 실행 할 수 있는 파일을 통칭, 단 파일을 실행하지 않은 상태이다. 프로세스(Process) ? 실행중인 프로그램을 말하여 운영체제로부터 자원을 할당받아 실행 중 또는 실행 대기 중인 작업의 단위 이다. 프로세스는 각각 독립된 메모리 공간(코드, 데이터, 스택, 힙)을 할당 받으며 서로 다른 프로세스간 메모리 접근이 허용되지 않는다. 프로세스간 서로 다른 자원에 접근 시 통신이 필요하다. 스레드(Thread) ? 프로세스 내에서 실행되는 작업 갈래, 흐름의 단위를 말한다. 스레드는 같은 프로세스 내에서 실행되며 각 스레드마다 스택을 할당받고 코드, 데이터, 힙영역의 자원을 공유한다. 프로세스는 반드시 1개 이상의 스레드를 가지며 프로세스 내에서 여러개의 스레드가 있.. 2023. 10. 23. 이전 1 다음