본문 바로가기

운영체제8

동기화가 필요한 이유(뮤텍스 락, 세마포어, 모니터) 동기화가 필요한 이유 여러 쓰레드가 공유하는 자원에 쓰레드가 동시에 접근하는 경우에 데이터의 일관성이 깨질 수 있다. bank account problem 예시 공유하는 자원: 계좌 잔액10만원 쓰레드A, B: 계좌에 입금을 하는 쓰레드 동기화를 안 한 경우 A쓰레드가 입금을 하려고 계좌 잔액을 확인(잔액 10만원) 이때 A쓰레드에 타임아웃이 발생 B쓰레드가 잔액을 확인 -> 5만원 입금 -> 잔액 저장 후 B쓰레드 종료 A쓰레드는 잔액 10만원을 확인하고 타임아웃이 발생했기 때문에, A쓰레드의 잔액은 여전히 10만원 A쓰레드가 계좌에 10만원을 입금하면 25만원이 아니라 20만원이 된다. 즉 B쓰레드의 값이 없어짐 임계 구역 멀티 쓰레드 환경에서 동시에 실행될 때 쓰레드 실행 순서에 따라 결과가 달라질.. 2024. 4. 15.
프로세스 스케줄링 방식 비선점형 한번 CPU가 프로세스에 할당되면 작업을 완료할 때까지 CPU를 사용하며, 중간에 다른 프로세스가 CPU를 뺏을 수 없다. 구현이 간단하며, 오버헤드가 낮다. FCFS(First-Come, First-Served) 큐에 들어온 순서대로 CPU를 할당(선입선출) 처리 시간이 긴 프로세스가 앞으로 오면 뒤에 있는 프로세스들은 앞 작업이 끝날 때까지 기다려야 하므로 시스템의 효율성이 떨어짐 SJF(Shortest Job First) 큐에 있는 프로세스 중에서 실행 시간이 짧은 프로세스부터 CPU를 할당 긴 작업은 짧은 작업들에 밀려 실행순위가 밀리게 됨 아사 현상 HRN(Highest Response Ratio Next) SJF에서 발생할 수 있는 아사 현상을 해결하기 위해 만들어진 방식 대기 시간,.. 2024. 4. 11.
휘발성 메모리, 비휘발성 메모리, 메모리 보호 방식 휘발성 메모리 DRAM(Dynamic RAM) 메모리 작업이 시스템의 클럭 신호와 독립적임(비동기 방식) 저장된 0과 1의 데이터가 일정 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 함 SDRAM(Synchronous Dynamic Random Access Memory) DRAM과 달리 클럭 신호가 동기화되어 작동함 데이터 처리 속도 증가 SRAM(Static RAM) 전력이 공급되는 동안에는 데이터를 보관할 수 있어 재생할 필요가 없음 DRAM에 비해 빠르지만 비용이 높음 특정 용도에 사용됨(CPU 캐시메모리, 임베디드 시스템 등) 비휘발성 메모리 플래시 메모리 SD카드, SSD, USB 등 전력이 없어도 데이터를 보관할 수 있는 저장장치 롬(ROM) 읽기 전용 메모리 마스크 롬(Mask R.. 2024. 4. 8.
프로세스 라이프 사이클 프로세스 저장장치에 저장된 프로그램을 메모리에 로드되어 PCB를 얻고 실행되고 있는 순간부터 프로세스라고 한다. PCB 운영체제가 프로세스를 관리하기 위해 사용되는 자료 구조이다. 각 프로세스마다 고유한 PCB를 가지며 프로세스 종료 시 폐기된다. PCB의 구성 요소로 프로세스의 식별 ID, ID, 프로세스의 현재 상태, 프로세스가 다음에 실행할 명령어의 주소, 레지스터 정보, 프로세스의 메모리 위치 정보, 입출력 상태 정보, CPU 할당 시간, CPU 사용 시간 등을 나타내는 계정 정보, 부모 프로세스 식별자(PPID), 자식 프로세스 식별자(CPID)가 있다. 프로세스 생명 주기 생성 프로세스가 생성될 때 운영체제로부터 PCB를 얻는다. 준비 CPU는 한 번에 하나의 프로세스만을 처리할 수 있기 때문.. 2024. 4. 4.