cs/운영체제 6

명품 운영체제 9장 - 페이징 메모리 관리

페이징 개념 페이징은 프로세스를 페이지 라고 불리는 고정 크기로 나눈다. 물리 메모리 또한 페이지와 같은 크기인 프레임 으로 분할하여,  프로세스의 각 페이지를 물리 메모리의 프레임에 할당한다.  페이징 기법은 프로세스의 주소 공간을 페이지 크기로 자르기 때문에, 페이지의 경계를 고려하지 않고 코드 데이터 힙을 연이어 배치한다. 하지만 실제 운영체제에서는 코드,데이터,힙을 쉽게 관리하기 위해 데이터와 힙 영역이 서로 다른 페이지에서 시작되도록 배치한다.   페이지의 경계를 고려하지 않는다는게 무슨 말일까? 아래에서 예시를 통해 이해해보자.  페이지 크기는 4KB이고,  프로그램의 논리 주소 공간은 10KB라고 하자. 그리고 프로세스는 아래와 같이 구성된다고 해보자. 코드: 5KB데이터: 3KB힙: 2KB..

cs/운영체제 2024.12.05

명품 운영체제 8장- 메모리 관리, 연속 메모리 할당, 세그먼테이션

메모리 할당운영체제가 새 프로세스를 실행시키거나, 실행중인 프로세스가 메모리가 필요할때 프로세스에게 물리 메모리를 할당 하는 것이다. 그렇다면 프로세스를 물리 메모리의 어느 위치에 적재할지는 어떻게 결정하는 것일까?       운영체제의 메모리 할당 기법은 아래와 같이 구분할 수 있다.       연속 메모리 할당연속 메모리 할당이란 프로세스가 할당 받은 메모리가 한 덩어리로 연속된 공간이라는 의미이다. 연속 메모리 할당은 고정된 공간에 프로세스를 할당하는지, 프로세스의 크기에 따라 가변적으로 변하는지에 따라 고정 크기 할당과 가변 크기 할당으로 나뉜다.  고정 크기 할당메모리 전체를 파티션이라는 고정 크기로 분류하고, 파티션 1개에 프로세스 1개를 넣는 방식이다. 이 방식은 메모리를 고정 크기로 분리하..

cs/운영체제 2024.12.04

7장 교착 상태

교착 상태자원을 소유한 스레드들 사이에서  다른 스레드가 소유한 자원을 요청하여 모든 스레드가 무한정 대기하는 현상이다. 공유 자원에 대한 동기화 문제중 하나이다. 교착상태는 단일 cpu 환경과 멀티 코어 환경 모두에서 발생 할 수 있는 문제다.  교착상태는 사용자 응용프로그램 내에서 주로 발생한다. 커널은 교착상태를 고려하여 매우 정교하게 잘 작성되어있지만 사용자가 작성한 프로그램은 그렇지 않기 때문이다.  하지만 교착상태를 막도록 운영하는 컴퓨터 시스템은 거의 없다. 교착상태를 막기 위해서는 많은 시간과 비용이 들기 때문이다.   교착 상태 유발 요인 자원 멀티스레드가 자원을 동시에 사용하려는 충돌에서 발생  자원과 스레드 스레드가 실행되는 동안 한 개의 자원만 필요한 경우 교착상태가 발생하지 않는다..

cs/운영체제 2024.12.03

명품 운영체제 8장 메모리 관리 - 메모리 주소

물리주소와 논리주소 물리 주소실제 물리 메모리에서 사용하는 주소  논리 주소 (가상 주소) 프로세스 내에서 컴파일러에 의해 매겨지는 주소 논리 주소는 사용자에게 모든 메모리의 주소를 사용하고 있다는 착각과, 프로세스의 코드와 데이터가 0번지 무터 메모리에 적재된다는 착각을 불러일으킨다.   논리 주소의 물리 주소 변환 메인 메모리에 엑세스하여 명령어나 데이터를 얻기 위해서는 논리주소를 물리주소 로 변환해야한다. 이때, 논리 주소를 물리 주소로 바꾸는 방법은 " MMU( 주소 변환 하드웨어) "  를 이용한다.    MMU가 CPU 외부에 있다면, CPU가 발생시키는 주소는 논리 주소이다. 하지만 현재 컴퓨터는 대부분 MMU가 CPU 패키지 내부에 존재하기 때문에, CPU 패키지 바깥으로 나오는 주소는 물..

cs/운영체제 2024.11.18

명품 운영체제 8장 메모리 관리 - 메모리 계층 구조와 메모리 관리 핵심

메모리 계층 구조 메모리 CPU가 실행할 코드와 데이터를 저장하는 장치를 메모리 라고 한다.포괄적으로 컴퓨터 시스템 내에 모든 기억 공간들을 지칭한다.   메모리 계층 구조  컴퓨터 시스템 내에서 메모리는 매우 다양한 곳에 존재한다. cpu레지스터, 메인 메모리, 보조 기억 장치, 캐시 메모리등의 기억 장치들은 읽기 쓰기의 속도와 용량에 따라 계층 구조를 이루고 있는데 이것을 " 메모리 계층 구조 "라고 한다.      레지스터에서 하드 디스크로 갈수록 용량은 커지고,  가격은 싸지며, 읽기쓰기 속도는 느려진다.  캐시메모리  캐시 메모리는 더 빠른 cpu의 작업 처리를 위해 도입된 저장장치이다. 캐시 메모리가 있는 컴퓨터에서 cpu는 캐시로부터만  코드와 데이터를 읽어서 실행하기 때문에, 코드와 데이터..

cs/운영체제 2024.11.18

명품 운영체제 6장 스레드 동기화

스레드 동기화  다수의 스레드들이 공유 데이터에 동시에 접근하여 쓰기를 수행하면 공유 데이터가 훼손되어 문제가 발생 할 수 있다. 공유 데이터에 대한 스레드들의 동시 접근시 발생하는 문제를 해결하는 방법이 바로 스레드 동기화이다.  스레드 동기화란 다수의 스레드가 공유 데이터를 동시에 쓰는 충돌 상황에서, 공유 데이터가 훼손되지 않도록 스레드의 실행을 제어하는 방법이다.  1. 스레드 동기화의 필요성  공유 데이터에 동시 접근시 발생 할 수 있는 문제 왜 다수의 스레드들이 동시에 공유 데이터에 쓰기 작업을 할 때 문제가 발생할까? 예를들어 아래의 코드를 실행한다고 하자. sum= sum+10  이러한 코드는 사람을 위한 코드로  컴퓨터는 이해 할 수 없기 때문에 컴퓨터의 언어로 바꿔서 알려줘야한다. 따라..

cs/운영체제 2024.10.23