프로세스 동기화
프로세스 동기화 운영 체제에 대해 이야기할 때 한 가지 장애물은 모든 CPU 활동을 어떻게 불러야 하는지에 대한 문제가 있다는 것이다.
첫 번째 컴퓨터는 작업을 수행하는 일괄 처리 시스템이었고, 프로그램이나 사용자 작업을 수행하는 공유 시간 시스템이 그 뒤를 이었다.
단일 사용자 시스템에서도 사용자는 텍스트 프로세서, 웹 브라우저, 이메일 패킷과 같은 여러 프로그램을 동시에 실행할 수 있다.
또한, 운영체제는 컴퓨터가 멀티태스킹을 지원하지 않는 탑재 장치에서 한 번에 하나의 프로그램만 실행할 수 있더라도 메모리 관리 등 자체 프로그램 내부 활동을 지원해야 할 수도 있다. 여러 면에서 이러한 모든 활동은 유사하므로 이러한 모든 활동을 프로세스라고 할 수 있다.
우리는 개인적으로 보다 현대적인 프로세스인 용어를 선호하지만, 운영 체제의 주요 활동이 업무 처리였던 시절에 많은 운영 체제의 이론과 용어들이 발전했기 때문에 작업이라는 용어는 역사적 의미를 갖는다. 따라서 어떤 작업은 적절한 경우 운영체제의 역할을 설명하는 데 사용된다.
임계구역 문제
프로세스 동기화 논의는 소위 임계 영역 문제에서 시작됩니다. N-프로세스(Pa, PuPri)를 가진 시스템을 생각해 봅시다. 각 프로세스에는 적어도 다른 프로세스와 공유 데이터를 액세스하고 업데이트할 수 있는 임계 섹션이라는 코드가 포함되어 있습니다.
이 시스템의 중요한 특징은 어떤 프로세스가 자체 임계 영역에서 작동 중일 때 다른 프로세스가 임계 영역에 진입할 수 없다는 사실이다. 즉, 동시에 두 프로세스는 임시 영역 내에서 적용할 수 없습니다.
이 지역의 중요한 문제는 프로세스들이 그들의 활동을 동기화하기 위해 사용할 수 있는 프로토콜들을 공동으로 설계하는 것이다.
각 프로세스는 임계 영역에 진입하기 위해 허가를 요청해야 합니다. 이 주문을 구현하는 코드의 부분을 입력 섹션이라고 한다. 출구 구간은 임계 구역 이후에도 계속될 수 있다. 나머지 코드는 집합적으로 "나머지 섹션"이라고 불린다.
상호 제외
프로세스 P가 자체 임계 영역에서 실행되는 경우 다른 프로세스는 자체 임계 영역에서 실행될 수 없습니다.
진행 상황
자신의 임계 영역에서 실행 중인 프로세스가 없고 자신의 임계 영역으로 들어가려고 하는 경우, 나머지 영역에서 실행 중이지 않은 프로세스만 다음에 누가 임계 영역으로 들어갈 수 있는지 결정하는 데 참여할 수 있으며, 이 선택은 무기한 연기될 수 없다.
바운드 대기
프로세스가 임계 영역 진입을 요청할 때부터 해당 요청이 허용될 때까지 다른 프로세스가 자체 임계 영역 진입을 허용하는 횟수에 제한이 있어야 합니다.
언제든지 많은 커널 모드 프로세스가 운영 체제 내에서 활성화될 수 있습니다. 결과적으로 운영체제를 구현하는 코드(커널 코드)는 경쟁 조건에 노출되기 쉽다.
예를 들어 시스템에서 열려 있는 모든 파일의 목록을 유지하는 커널 데이터 구조를 생각해 보십시오. 새 파일을 열거나 닫을 때 이 목록을 수정해야 합니다. 두 프로세스가 동시에 파일을 열려고 하면 목록에 대한 개별 업데이트로 인해 경쟁 상태가 발생할 수 있습니다.
2023.06.09 - [운영체제] - 스레드 (thread) 핵심 요약 정리(1)
스레드 (thread) 핵심 요약 정리(1)
스레드 스레드 : CPU를 사용하는 기본 단위입니다. ID, 프로그램 카운터(PC), 로그 세트, 그리고 같은 프로세스에서, 스레드는 열려 있는 파일과 신호와 같은 운영 체제 코드, 데이터 섹션 및 자원을
contentplus.tistory.com
'운영체제' 카테고리의 다른 글
세마포어 (Semaphores) 핵심 요약 정리 (0) | 2023.06.10 |
---|---|
동기화 (Synchronization) 핵심 요약 정리 (0) | 2023.06.09 |
스레드 라이브러리 (Threads Library) 핵심 정리(3) (0) | 2023.06.09 |
스레드 모델 (thread) 핵심 요약 정리(2) (0) | 2023.06.09 |
스레드 (thread) 핵심 요약 정리(1) (0) | 2023.06.09 |