목록OS (10)
Nnnnnnnnn
Virtual Memory Virtual Memory(논리적 메모리. OS 관여) - Separation of user logical memory from physical memory. How can we implement Virtual memory? - 90-10 rule : programs spend 90% of their time in 10% of their code - Wasteful to require all of user's code to be in memory -> only part of the program needs to be in memory for execution -> need to allow pages to be swapped in and out -> demand paging De..
Memory Managements Logical address (=virtual address) - 프로세스마다 독립적으로 가지는 주소 공간 (프로그램 시작과 동시에 생성) - 각 프로세스마다 0번지부터 시작 - CPU가 보는 주소는 logical address Physical address - 메모리에 실제 올라가는 위치. (하단에 커널, 그 위에 여러 프로그램 올라감) 주소 바인딩 : 주소를 결정하는 것. 주소 바인딩 (Address Binding) - Compile time binding(주소변환이 compile할때 발생) : 물리적 메모리 주소가 컴파일 시 알려짐. 시작 위치 변경 시 재 컴파일. 컴파일러는 절대 코드(absolute code) 생성 (무조건 0번지부터이기때문) => 논리적=물리적..
Deadlocks Deadlock - 일련의 프로세스들이 서로가 가진 자원을 기다리며 block(sleep)된 상태. Resource(자원) - 하드웨어, 소프트웨어 등을 포함하는 개념 ex)I/O device, CPU cycle, memory space, semaphore등 - 프로세스가 자원을 사용하는 절차(Request, Allocate, Use, Release) Deadlock 발생 조건 - Mutual exclusion(상호배제) : 매 순간 하나의 프로세스만이 자원을 사용할 수 있다. 자원을 독점적으로 사용. - No preemption(비선점) : 프로세스는 자원을 스스로 내어놓을 뿐 강제로 빼앗기지 않는다. - Hold and wait(보유대기) : 자원을 가진 프로세스가 다른 자원을 기다..
Process Synchronization 자원에 대한 프로세스 간 경쟁에서 발생하는 제어문제 - 상호배제(mutual exclusion) process synchronization- 교착상태(deadlock)- 기아상태(starvation) starvation -> solution : aging Race Condition 다수의 프로세스나 스레드가 공유자원을 동시에 읽거나 쓰려고 하는 상태 Race condition이 발생하면, 최종 수행 결과는 프로세스들의 수행 순서에 따라 달라진다. OS에서 race condition은 언제 발생하는가? 1. Kernel 수행 중 인터럽트 발생 시 커널모드 running 중 interrupt가 발생하여 인터럽트 처리루틴이 수행 - 양쪽 다 커널 코드이므로 kerne..
CPU Scheduling 여러 종류의 job(=process)이 섞여 있기 때문에, CPU 스케줄링 필요. Interactive job에게 적절한 response 제공 요망.(I/O가 자주 끼어듬.) CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용. CPU bound job이 한번 점유하면 다른 job이 사용 x CPU를 공평하게 주는 것이 아니라 효율성이 중요하다. I/O bound job 오래 기다리지 않게 하는 것이 중요하다. - I/O-bound process CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job many short CPU bursts ex) 사용자와 친한 마우스 클릭을 예로 들 수 있다.(interactive job). 빈도가 짧아 왔다갔다 하는거지..
Process Management 프로세스 생성 - 부모 프로세스가 자식 프로세스 생성. OS가 할일인데 바빠서 부모가 알아서 process를 생성한다.- 프로세스의 트리(계층 구조)형성- 프로세스는 자원을 필요로 함 : 운영체제로 부터 받는다. 부모와 공유한다.- 자원의 공유 : 부모와 자식이 모든 자원을 공유하는 모델, 일부를 공유하는 모델, 전혀 공유하지 않는 모델.- 수행 : 부모와 자식은 공존하며 수행되는 모델. 자식이 종료될 때까지 부모가 기다리는(Wait) 모델. 주소 공간(Address Space) - 자식은 부모의 공간을 복사함(Binary and OS data) - 자식은 그 공간에 새로운 프로그램을 올림 유닉스의 예 - fork() 시스템 콜이 새로운 프로세스를 생성 : 부모를 그대로..
Process 프로세스란? 사용자가 프로그램을 실행하면 OS는 그 내용을 메모리상으로 읽어들여 처리를 실행한다. 이 메모리상에 할당된 프로그램을 프로세스라고 한다. 프로그램의 인스턴스. Process is a program in execution. 프로세스의 문맥 - CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter - 다음에 program 실행할 주소를 알려줌 각종 register - 프로세스의 주소 공간 ( A가 할당되면 프로세스A의 주소공간이 할당된다.) stack, data, code code 중(함수) 하나쓰면 stack에 올라간다. A가 할당되어 register로 가서 일하고(ALU), 다시 register로 돌아와 memory로 빠진다.(현 상태 저장을 위해). - 프로..
컴퓨터 시스템의 구조 Mode bit 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치가 필요하다. Mode bit를 통해 하드웨어적으로 두 가지 모드의 operation을 지원한다. 사용자 프로그램을 수행하는 사용자 모드(제한된 instruction만 실행)와, OS 코드를 수행하는 모니터 모드이다. 모니터 모드는 커널 모드, 시스템 모드와 같은 의미이다. 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 특권 명령으로 규정한다. interrupt나 Exception 발생 시 하드웨어가 mode bit를 0으로 바꾼다. 사용자 프로그램에게 CPU를 넘기기 전에 mode bit를 1로 세팅한다. Timer 정해진 시간이 흐른 뒤 운영..