나를 기록하다
article thumbnail
[쉽게 배우는 운영체제] 8. 가상 메모리의 기초

가상 메모리의 개요 가상 메모리는 크기가 다른 물리 메모리에서 일관되게 프로세스를 실행할 수 있는 기술 가상 메모리 시스템 가상 메모리는 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술 가상 메모리 시스템에서 모든 프로세스는 메모리의 어느 위치에 있는지 상관없이 0번부터 시작하는 연속된 메모리 공간을 가짐 논리 주소와 가상 주소 논리 주소의 크기는 물리 메모리의 주소 공간에 비례 가상 주소의 크기는 물리 메모리의 공간이 아닌 가상의 주소 공간을 가짐 이론적으로 가상 메모리의 크기는 무한대이나 실제로 가상 메모리의 최대 크기는 컴퓨터 시스템이 가진 물리 메모리의 최대 크기로 한정되며 CPU의 비트에 따라 결정됨 32bit CPU의 경우 약 4GB가 메모리의 최대 크기 → 가상 ..

article thumbnail
[쉽게 배우는 운영체제] 7. 물리 메모리 관리

메모리 관리의 개요 폰 노이만 구조에서 메모리는 유일한 작업 공간이며 모든 프로그램은 메모리에 올라와야 실행할 수 있다. 모든 프로그램은 하드디스크나 SSD와 같은 보조 저장장치에 보관되어 있다. 프로그램이 실행되어 프로세스가 된다는 것은 저장장치에 있던 프로그램이 메모리로 올라온다는 것이다. 메모리 이해하기 메모리의 구조: 1바이트(B)의 크기로 나뉨 1B로 나뉜 각 영역은 주소(address)로 구분, 보통 0번지부터 시작 CPU는 메모리에 있는 데이터를 가져오거나 작업 결과를 메모리에 저장하기 위해 주소 사용 운영체제도 프로그램이므로 메모리에 올라와야 실행 가능 → 전원 버튼 누르면 부팅이 이뤄지고 이때 하드디스크에 저장된 운영체제가 메모리에 올라감. 부팅이 끝나면 여러 응용 프로그램이 메모리에서 ..

article thumbnail
[쉽게 배우는 운영체제] 6. 교착 상태

교착 상태의 개요 교착 상태의 정의 교착 상태(deadlock) 2개 이상의 작업이 동시에 이루어지는 경우, 다른 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태 교착 상태(deadlock) vs 아사 현상(starvation) 아사 현상 : 잘못된 정책으로 특정 프로세스의 작업이 지연되는 문제 교착 상태 : 여러 프로세스가 작업을 진행하다 보니 발생하는 자연적인 현상 컴퓨터 시스템에서 교착 상태는 시스템 자원을 사용하거나 잠금을 사용할 때 발생할 수 있다. 시스템 자원 교착 상태는 다른 프로세스와 공유할 수 없는 자원을 사용할 때 발생 잠금 교착 상태는 잠금을 사용할 때 발생 예시 코드 - 무한 대기를 막지 못해 교착 상태가 발생한 경우 p1이 lock1을 true로 만든 다음 p2가 l..

article thumbnail
[쉽게 배우는 운영체제] 5. 프로세스 동기화

프로세스 간 통신 프로세스 간 통신의 개념 프로세스(또는 스레드)는 독립적으로 실행 협업 또는 데이터 병렬 처리를 위해서는 데이터를 주고 받아야 함 스레드: 하나의 프로세스 내에서 자원을 공유하는 실행 단위 프로세스 간 통신(IPC; Inter Process Communication) 하나의 프로세스에 속한 스레드끼리 데이터를 주고받는 것은 어렵지 않음. 서로 다른 프로세스는 사용하는 메모리 영역이 다르기 때문에 공유된 메모리를 통하여 통신하는 것이 어려움. 운영체제가 제공하는 프로세스와 프로세스끼리 쉽게 데이터를 주고받을 수 있는 통신 방법을 IPC라고 함. 공유 메모리나 공유 파일을 이용한 통신(프로세스 내부 데이터 통신) 프로세스 간 통신 중 가장 원시적인 방식 일정한 메모리 영역이나 파일을 공유하..

article thumbnail
[쉽게 배우는 운영체제] 4. CPU 스케줄링

스케줄링의 개요 CPU 스케줄링 CPU 스케줄러는 관리의 범주를 나누어 스케줄링한다. CPU 스케줄링은 규모에 따라 고수준 스케줄링, 중간 수준 스케줄링, 저수준 스케줄링으로 구분된다. 고수준 스케줄링 가장 큰 틀에서 이루어지는 CPU 스케줄링은 고수준 스케줄링 또는 장기 스케줄링, 작업 스케줄링이라고 함 많은 작업을 동시에 하면 시스템에 과부하가 걸려 작업이 원활하게 이루어지지 않음 시스템 내의 전체 작업 수를 조절 작업: 운영체제에서 다루는 일의 가장 큰 단위, 1개 또는 여러 개의 프로세스로 이루어짐 고수준 스케줄링 단계에서 어떤 작업을 시스템이 받아들일지 또는 거부할지 결정 일단 작업이 시작되면 시스템 자원을 사용하기 때문에 기존 작업에 영향을 미침 작업 요청이 오면 스케줄러가 시스템의 상황을 고..

article thumbnail
[쉽게 배우는 운영체제] 3. 프로세스와 스레드

프로세스의 개요 운영체제에서 프로세스란 하나의 작업 단위다. 사용자가 마우스를 더블클릭하여 프로그램을 실행하면 그 프로그램은 프로세스가 된다. 이렇게 실행된 프로세스는 복잡한 과정을 거쳐 사용자가 지시한 작업을 마무리한다. 프로세스의 개념 폰노이만 구조에서 프로그램이 실행된다는 것은 해당 코드가 메모리에 올라와서 작업이 진행된다는 의미다. 프로그램은 저장장치에 저장된 정적인 상태이고, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태다. 프로그램과 프로세스 프로그램: 작성한다라고 표현, 어떤 데이터를 사용하여 어떤 작업을 할지 그 절차를 적어놓은 것 프로세스: 실행한다라고 표현, 프로그램으로 작성된 작업 절차를 실행에 옮기는 것 누군가 작성한 프로그램이 실행되면 프로세스가 된다. 일괄 작업 방식 일괄 ..

profile on loading

Loading...