운영체제 (14) 썸네일형 리스트형 [운영체제] Process synchronization (2) 동기화 관련 문제와 해결방법에 대하여 Bounded-Buffer Problem => Shared-Memory Solution 일반적으로 Producer, Consumer 문제라고 함 Producer는 데이터를 만들기만 하고, Consumer는 소비하기만 함 Producer가 Buffer에 데이터를 쓰면 Consumer가 거기에서 읽어감 Buffer 크기는 제한되어 있으며, 프로세스 간 공유함 Producer가 데이터를 쓸 때 Consumer가 읽어가면 안되고, Consumer가 읽어갈 때 Producer가 쓰면 안됨 -> semaphore로 해결 가능(Buffer에 들어갈 때 P 호출, 나올 때 V 호출) Buffer가 한정된 크기를 가지므로 Producer가 필요할 때마다 데이터를 쓸 수 없음 Buff.. [운영체제] Process Synchronization (1) Race condition: 여러 프로세스가 동시에 같은 데이터에 접근할 때=> 동기화 필요 The Critical-Section Problemn개의 프로세스들이 공유된 데이터에 경쟁적으로 접근할 때, 공유된 데이터에 접근하는 코드를 critical section이라 함어떤 프로세스가 critical section을 수행 중이면 다른 어떤 코드도 critical section을 수행하지 못하게 해야 함수행하지 못하게 막는 방법 -> solutionSolution of the critical-section problem3가지 요구사항Mutual Exclusion: 어떤 프로세스가 critical section을 수행 중이면 다른 어떤 코드도 critical section을 수행하지 못하게 해야 함Progr.. [운영체제] CPU Scheduling 현재 CPU 자원을 수행 중인 process 중 누구에게 줄 것인가를 결정하는 것process 상태를 변화시키는 process scheduling 과는 구별됨short-term scheduler에 해당됨 CPU scheduler의 중요한 원칙CPU를 ㅃㄹㅃㄹ 줘서 사용자가 직접적으로 interactive하다고 느끼게 만들어 줄 필요가 있음=> I/O bound job에 먼저 CPU를 줘야 되겠다 CPU SchedulerMultiprogramming 환경에서 동작ready 상태의 프로세스에서 하나를 골라 CPU 할당해줌언제 발생하는가?어떤 프로세스가 cpu를 잡아서 돌다가 waiting 상태로 갔을 때 (I/O request)running 상태에서 ready 상태로 갈 때 (멀티 프로그래밍 상태에서 시간이.. [운영체제] Process and Threads Process: 실행 중인 프로그램실체: 프로그램이 실행되는 데 필요한 모든 것들을 저장하는 자료구조분기나 JUMP가 없으면 기본적을 sequential로 실행포함하는 것 1. text section: 프로그램 코드2. stack section: function call과 관련된 데이터들 (parameter, return address, local variables ...) -> top에서 pop하면 함수에 들어갔다 나오는 정보들을 바로 알 수 있음3. data section: 프로그램의 어떤 부분을 실행하든 접근 가능은 데이터들, static, global variable 저장4. heap section: 동적 메모리 할당(ex> malloc)으로 저장한 데이터 관리하는 영역5. 동작,.. [운영체제] Operating System Overview Multiprogramming- OS는 CPU가 불필요한 대기를 하지 않게 하기 위해서 기본적으로 멀티프로그래밍을 해야 함- 멀티프로그래밍을 함으로써 멀티태스킹까지 가능해짐- 하나의 애플리케이션만으로는 인터럽트 대기 등의 이유로 CPU가 바쁠 수 없음 -> 효율성을 위해 멀티프로그래밍 필요- 여러 개의 프로그램이 모두 메모리에 올라가야 하기 때문에 가상 메모리 필요- CPU 스케줄링 = job 스케줄링 = 프로세스 스케줄링 ㄴ 어떤 프로그램을 지금 CPU가 실행할 지 결정해야 함- I/O 등으로 인해 CPU가 다른 일을 해야 하면 switch 하는 기능 필요- 어떤 프로그램이 I/O를 발생시키지 않으면 그 프로그램만 계속 돌아가니까 다른 프로그램이 진도를 안 나감 Multitasking = Ti.. [운영체제] Computer System Overview 기본 요소 - Processor(CPU), Main Memory, System bus, I/O modules Main Memory: 휘발성, 전기가 나가면 데이터가 사라져버리는, 무척 빠르기 때문에 주기억장치로 사용Processor (CPU): ALU(Arithmetic Logic Unit), CU(Control Unit), Register로 구성- ALU: 연산 담당- CU: 컨트롤- Register: 매우 작지만 CPU 안에 있어서 접근 속도 빠름, 연산을 위한 저장 공간 1. data I/O registers: CPU와 메모리 간 데이터를 주고 받기 위함Memory address register (MAR); 메인 메모리에 대한 주소Memory buffer register(MBR); 메인 메모리에 대.. 이전 1 2 다음