[CS] 운영체제 - 메모리 관리
·
Computer Science/Operating System
메모리는 주소를 통해서 접근하는 매체이다. 크게 논리적인 주소, 물리적인 주소로 나뉜다. Logical address 와 Physical Address Logical address(논리 주소) 프로세스마다 독립적으로 가지는 주소 공간이며, 각 프로세스마다 0번지부터 시작한다. CPU가 보는 주소는 논리적인 주소이다. Physical address(물리 주소) 메모리에 실제 올라가는 위치를 말한다. 주소 바인딩 주소 바인딩이란 주소를 결정하는 것을 의미한다. Compile time binding 물리적 메모리 주소가 컴파일 시 알려진다. 시작 위치 변경시 재컴파일한다. 컴파일러는 절대 코드를 생성한다. Local time bining Loader의 책임하의 물리적 메모리 주소를 부여한다. 컴파일러가 재배치..
[CS] 운영체제 - Deadlock
·
Computer Science/Operating System
데드락이란 교착상태를 말한다. 일련의 프로세스들이 서로가 가진 자원을 기다리며 blcok된 상태를 말한다. Resource(자원) 자원은 하드웨어, 소프트웨어 등을 포함하는 개념이다. 예를 들어 I/O 장치, CPU cycle, memory space, semaphore 등이 있다. 프로세스가 자원을 사용하는 절차는 크게 4 단계를 거친다. request: 자원 요청 allocate: 자원을 획득 use: 자원을 사용 release: 자원을 반납 Deadlock 발생의 4가지 조건 데드락이 발생하려면 아래 4가지 조건을 모두 만족해야한다. Mutual exclusion(상호 배제): 매 순간 하나의 프로세스만이 자원을 사용할 수 있다. No preemotion(비선점): 프로세스는 자원을 스스로 내어놓을..
[CS] 운영체제 - 프로세스 동기화
·
Computer Science/Operating System
데이터의 접근 순서는 아래와 같다. 1. 저장된 곳에 있는 Data를 연산하는 곳으로 보낸다. 2. 연산하는 부분에서 연산 후 연산 결과를 다시 원래 위치로 보낸다. ex) CPU와 Memory (프로세스가 연산의 주체이고 주소공간이 저장소임) Race condition 예를 들어 저장소를 다른곳에서 동시에 사용할 때 문제가 생길 수 있다. 이 때 이러한 문제를 해결해야 한다. OS에서 Race condition 문제가 발생하는 상황은 다음과 같다. Kernel 수행 중 인터럽트 발생 시 커널모드 실행중 interrupt가 발생하여 인터럽트 처리루틴이 수행한다. 양 쪽 다 커널 코드 이므로 kernel address space가 공유된다. Process가 system call을 해서 kernel mode..
[CS] 운영체제 - CPU 스케줄링
·
Computer Science/Operating System
CPU Scheduler: Ready 상태의 프로세스 중에서 CPU를 줄 프로세스를 고른다. Dispatcher: CPU의 제어권을 CPU 스케줄러에 의해 선택된 프로세스에게 넘긴다. 이 과정을 context switch라고 한다. (실제로 CPU를 주는 과정이다.) CPU 스케줄링이 필요한 경우는 프로세스에게 다음과 같은 상태 변화가 있는 경우이다. Running에서 Blocked로 갈 때 (ex) I/O 요청하는 시스템 콜이 일어날 때) Running에서 Ready로 갈 때 (ex) 할당 시간 만료로 timer interrupt가 발생할 때) Blocked에서 Ready로 갈 때 (ex) 1번 완료후 인터럽트) terminate될 때 nonpreemptive: 비 선점형, 강제로 빼앗지 않고 자진해서..
얼은펭귄
'Computer Science/Operating System' 카테고리의 글 목록 (2 Page)