운영체제3 [운영체제] 프로세스 동기화 문제와 해결 방법 - 경쟁상태, 임계구역, 뮤텍스, 세마포어 + 예시 코드 무엇이든지 하나일 때는 문제가 없다가, 둘 이상 혹은 n개 이상부터 모든 문제가 시작된다...! 운영체제의 프로세스 동기화에 대해 습득한 지식을 내가 이해한대로 정리해보았다. 1. Race condition(경쟁 상태) 공유하는 데이터에 동시에 접근하여 연산을 할 경우, 순서에 따라 상황별로 연산의 결과가 다르게 나올 수 있는 상태를 Race condition이라고 한다. 위 그림처럼 공유 변수인 sum을 두고 값을 1 증가시키는 프로세스 두 개가 동시에 실행된다면 순서에 따라 올바르지 않은 결과를 얻을 수 있다. 2. Critical Section(임계 영역) race condition을 방지하기 위해 공유 데이터에 대한 연산 과정은 반드시 하나의 프로세스/스레드에 의해서만 실행이 되어야 하는데 그 영.. 2023. 4. 9. [운영체제] 프로세스와 스레드 1. 프로세스의 개념 개발자로서 일할 때 반드시 필요한게 뭘까? 바로 컴퓨터이다. 운영체제는 컴퓨터라는 하드웨어에 설치되어 각종 하드웨어 자원과 컴퓨터 사용자 간의 매개체 역할을 하는 소프트웨어다. CPU, 디스크, 키보드, 마우스 등과 소통하며 우리가 시킨 일(프로세스)들을 효율적으로 처리할 수 있도록 운영체제가 열심히 일을 해준다. 일반적으로 프로그램은 저장 매체에 저장되어 있고, 사용자가 프로그램을 실행시키면 운영체제는 프로그램을 메모리에 올려 놓는다. 메모리에 있는 프로그램은 CPU에 의해 실행되거나 실행 준비중에 있는데, 이러한 프로그램을 프로세스라고 한다. Mac OS에서는 활성 상태 보기, 윈도우에서는 작업 관리자에서 손쉽게 해당 컴퓨터의 모든 프로세스를 볼 수 있다. (과거에 게임하다가 렉.. 2023. 3. 26. 운영체제 목차 인트로 운영체제란? 프로세스와 스레드 관리 프로세스와 스레드 프로세스 스케줄링 프로세스 간 동기화 및 통신 임계 구역과 상호배제, 세마포어와 뮤텍스 모니터 메시지 교착 상태 교착 상태란? 교착 상태의 조건 교착 상태 예방 교착 상태 회피 교착 상태 탐지 교착 상태 회복 기억장치(메모리) 관리 CPU와 메모리의 주소 바인딩 메모리의 계층 구조 및 관리 기법 고정/가변 분할 메모리 할당 가상 메모리 관리 페이징과 세그멘테이션 페이지 교체 알고리즘 디스크 스케줄링과 파일 시스템 디스크 스케줄링 파일 시스템 정보 보호 및 보안 다중 처리 시스템 분산 처리 시스템 임베디드 시스템 2023. 3. 20. 이전 1 다음