legacy/Operating System
-
[운영체제] 프로세스의 동작 방식에 대해서 알아보기legacy/Operating System 2024. 9. 5. 13:55
1. 커널 영역과 사용자 영역커널 영역에는 프로세스 제어 블록(PCB)이 저장되고, 사용자 영역에는 실행 중인 프로세스를 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장된다.1-1. 코드 영역코드 영역은 CPU가 실행할 명령어가 담겨 있기 때문에 읽기 전용(read-only) 모드로 사용한다. CPU는 코드 영역에 담긴 명령어를 읽고 실행만 하기 때문에, 수정되어서는 안 될 공간이다.1-2. 데이터 영역데이터 영역은 프로그램이 실행되는 동안 사용할 데이터가 저장되는 공간이다. 주로 정적 변수와 전역 변수가 저장된다.전역 변수 : 프로그램 전체에서 사용 가능한 변수이다.자바(Java)는 전역 변수를 지원하지 않는다.정적 변수 : 클래스에 속한 변수로, 클래스의 모든 인스턴스가 공유하는 변수..
-
[운영체제] TLB(Translation Lookaside Buffer)legacy/Operating System 2024. 7. 10. 14:53
page table은 메모리에 저장되는데, CPU는 프로세스를 사용하기 위해 메모리에 두 번 접근해야 한다.메모리에 저장된 page table에 접근가상 주소를 물리 주소로 변환하기 위해 page table에 접근한다.page table 기반으로 실제 메모리에 접근page 테이블에서 얻은 물리 주소를 통해 실제 물리 메모리에 접근한다. CPU에서 메모리에 접근하는 것은 시간이 소요되는 작업이다. 따라서 메모리에 두 번의 접근이 필요하면 상당한 시간이 소요된다. 이러한 문제를 해결하기 위해서는 메모리에 접근하는 횟수를 줄여야 한다. 1. TLB(Translation Lookaside Buffer)1-1. TLB란?TLB(Translation Lookaside Buffer)는 메모리 접근 횟수를 줄이고자 ..
-
[운영체제] 프로세스 주소 공간과 TLS(Thread Local Storage)legacy/Operating System 2024. 7. 10. 14:27
1. 프로세스 주소 공간스택(Stack) 영역컴파일 시점에 크기가 결정된다.함수의 호출과 관계있는 지역 변수와 매개 변수 그리고 함수의 실행을 마치고 복귀할 주소가 저장되는 영역이다.스택 영역은 함수의 호출과 함께 생성되고 종료와 함께 소멸된다.메모리의 높은 주소에서 낮은 주소 방향으로 할당된다.재귀가 너무 깊게 호출되면 StackOverFlow 예외가 발생하는데, 이는 제한된 스택 영역을 초과하였기 때문에 발생한다.프로그램 실행 중에 변경될 수 있으므로 Read-Write로 설정되어 있다.힙(Heap) 영역런타임 시점에 결정되는 영역이다.사용자에 의해 동적으로 할당되고 명시적으로 해제해야 한다.malloc(), new(), free()주로 참조형 데이터가 할당된다.프로그램 실행 중에 변경될 수 있으므로..
-
[운영체제] 외부 단편화와 내부 단편화legacy/Operating System 2024. 7. 4. 15:38
1. 외부 단편화란?외부 단편화란 남아 있는 총 메모리 공간이 요청 메모리 공간보다 크지만, 남아 있는 메모리 공간이 연속적으로 위치하지 않아 요청한 메모리를 적재할 수 없는 현상이다. 아래 예시를 보자.남아 있는 총 메모리 공간 : 100MB (50 + 50)요청 메모리 크기 : 80MB총 메모리 공간만 보았을 때 충분히 요청 메모리를 적재할 수 있으나, 남아있는 두 메모리가 연속적으로 위치하지 않아 적재할 수 없다. 1-1. 외부 단편화가 발생하는 이유총 메모리 공간은 충분함에도 남아 있는 메모리들이 연속적으로 위치하지 않기 때문이다. 2. 외부 단편화 해결하기외부 단편화가 발생한 이유는 남아있는 메모리가 연속적으로 위치하지 않았기 때문이다. 그렇다면 남아 있는 메모리를 연속적으로 위치할 수 있도록..
-
[운영체제] 페이지 매핑 테이블 심화legacy/Operating System 2024. 5. 13. 17:37
페이지 매핑 테이블의 주소 매핑각 프레임(또는 페이지)은 여러 주소를 포함하고 있다.예를 들어, 2번 프레임의 경우 시작주소가 22번지이고 23, 24, 25 ... 여러 주소를 포함하고 있다. 페이징을 사용하는 시스템에서는 형식으로 논리 주소에 접근한다.페이지 번호: 접근하고자 하는 페이지 번호변위: 페이지가 적재된 프레임의 시작 번지로부터 떨어진 주소페이지 매핑 테이블을 통해 에서 로 변경된다. Ex) CPU는 2번 페이지가 적재된 5번 프레임의 시작 번지 67에서 2만큼 떨어진 69번지에 접근한다. 페이징 매핑 테이블이 갖는 4가지 비트유효 비트페이지가 메모리에 적재되어 있는지 구분하는 비트프로세스 단위가 아닌, 페이지 단위로도 스와핑이 가능하다. 단, 불연속적인 메모리 할당 기법에서만 적용된다...
-
[운영체제] 연속 메모리 할당 방법과 단편화legacy/Operating System 2024. 5. 12. 00:30
연속 메모리 할당연속 메모리 할당이란 메모리 영역 중에서 요구하는 메모리 크기만큼 연속적인 공간을 찾아 할당하는 방식이다.즉, 프로세스를 연속적인 공간에 할당하는 방식을 의미한다. 스와핑 설명에 앞서, 스와핑이 무엇인지 먼저 알아야 한다. 프로그램을 실행하기 위해서는 보조기억장치에 있는 프로세스가 메모리에 적재되어야 한다. CPU는 메모리에 적재된 프로세스를 사용한다. 메모리에 적재된 프로세스 중에 현재 사용되지 않는 프로세스 또는 IO작업으로 인해 대기 상태인 프로세스가 있을 수 있다. 오랫동안 사용되지 않는다면 굳이 메모리에 상주할 필요가 없다. 메모리의 크기는 한정적이기 때문에 효율적으로 사용해야 한다.이때, 사용되지 않는 프로세스를 메모리에서 보조기억장치로 보내는 것을 스왑아웃(swap-out)이..