본문 바로가기

컴퓨터 사이언스/운영체제7

메모리 관리 논리 주소 vs 물리 주소 논리 주소 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지 부터 시작 CPU가 보는 주소는 logical address임 물리 주소 메모리에 실제 올라가는 위치 주소 바인딩 symbolic address -> loical address -> physical address symbolic address: 변수로 메모리 주소를 표현하는 것 logical address에서 physical address로 언제 변환하는 지에 따라서 주소 바인딩 방법이 나뉜다. compile time binding 컴파일시 물리적 주소가 정해진다. 물리적 주소를 변경하고 싶다면 재컴파일 해야한다. 컴파일러는 절대코드(absolute code)를 생성한다. load time binding.. 2023. 8. 1.
프로세스 동기화 The Critical Section Problem n 개의 프로세스가 공유 데이터를 동시에 사용하기를 원하는 경우 각 프로세스의 code segment에는 공유 데이터를 접근하는 코드인 critical section 존재 (ex. count = count + 1) 공유 데이터의 incosistency 문제를 해결하기 위해선 하나의 프로세스가 critical section에 있을 때 다른 모든 프로세스는 critical section에 들어갈 수 없어야 한다. 사용자 프로세스에서는 공유 데이터가 존재하지 않는다. 각자만의 메모리 영역이 다르기 때문이다. 그러나 운영체제의 커널은 여러 프로세스가 공유하는 데이터이기 때문에 Critical Section 문제가 발생할 수 있다. 프로그램적으로 해결하는 방법의.. 2023. 7. 14.
CPU 스케줄링 프로세스 특성 분류 I/O bound process CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job many short CPU bursts CPU bound process 계산 위주의 job few very long CPU bursts CPU Scheduler & Dispatcher CPU Scheduler Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다. Dispatcher CPU의 제어권을 CPU scheduler에 의해 선택된 프로세스에게 넘긴다. 이 과정을 Context Switch라고 한다. CPU 스케줄링이 필요한 경우 Running -> Blocked (I/O 요청하는 시스템 콜): nonpreemptive(CPU 자진반납) Running -> Re.. 2023. 7. 10.
프로그램 메모리 프로그램 실행 프로그램은 File System에 실행 파일 형태로 저장되어있다가 실행시 Physical memory에 load되어 프로세스가 됨 Physical memory에는 kernel이 상주하고 있음 하나의 프로세스 데이터는 분산되어 위치한다. 당장 필요한 데이터들은 physical memory에, 필요하지 않은 데이터는 swap area에, code는 File system에 분산 되어있다. virtual memory 실행 파일은 Physical memory에 로드된 실제 주소와 달리 각각 가상의 Virtual memory address를 갖는다. 프로세스가 실행 중 데이터 주소에 접근할 때 프로세스가 알고 있는 virtual memory 주소와 실제 위치한 physical memory 주소가 다르.. 2023. 7. 1.