1. 교착상태(데드락, Deadlock)란? 교착상태는 상호 배제에 의해 나타나는 문제점으로,둘 이상의 프로세스나 스레드들이 자원을 점유한 상태에서서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상이다. 2. 교착상태 발생 조건 Deadlock 교착상태 발생의 필요충분조건은 네 가지가 있는데 이 네 가지 중 하나라도 충족되지 않으면 교착상태는 발생하지 않는다. 1) 상호배제 Mutual Exclusion한 번에 하나의 프로세스만이 공유 자원을 사용하는 것 2) 점유와 대기 Hold and Wait최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기 3) 비선점 Non-Preemption다른 프로세스에 할당된 자원은 사용..
Computer Science/OS
멀티 코어 시스템에서는 여러 프로세스가 동시에 실행되어 시스템의 성능 향상을 목표로 한다.이러한 환경에서 하나의 공유 자원을 한 프로세스가 사용중일 때,다른 프로세스가 동시에 사용하려고 하면 여러 문제가 발생한다.서로 다른 값을 변경하려고 하거나 읽는 도중에 값이 바뀌어 오류가 생길 수도 있다.이러한 문제들을 동기화 문제라고 하며이렇게 동시에 사용될 수 있는 자원을 임계 영역이라고 한다. 0. 임계 영역 Critical Section - 정의프로세스 간 공유 자원을 접근하는 데 있어서 문제가 발생하지 않도록한 번에 하나의 프로세스만 이용하도록 다른 프로세스의 접근을 제한하는 영역 - Critical Section Problem: 임계 영역을 만족시키기 위해서 해결해야 할 3가지 문제들 상호배제(Mutu..
1. TLB 의미와 구성TLB는 Paging에서 문제가 됐던 잦은 메모리 접근을 보완하기 위한 방법이다.자주 사용하는 Page Table Entry의 경우 MMU의 SRAM에 캐싱하는 것이다.기존 Paging은 아래와 같은 방법으로 진행되었다.위 사진에서 보다시피 페이지 테이블은 메인 메모리에 존재해서 CPU는 메인 메모리에 최소 두 번은 접근해야 원하는 데이터를 얻을 수 있다.1) 페이지 테이블에 접근2) 페이지 테이블을 기반으로 실제 메모리로 접근따라서 이러한 메모리 낭비를 줄이고자 TLB를 사용한다.TLB를 사용하면 Address translation 과정이 아래와 같이 바뀌게 된다. PTEA(PTE Address) - TLB 정의 및 역할가상 메모리 주소를 물리적인 주소로 변환하는 속도를 높이기..
메인 메모리의 크기는 한정되어 있다.따라서 물리적인 메모리 크기보다 크기가 큰 프로세스는 실행시킬 수 없다.이러한 프로세스를 실행시키기 위해서는 메인 메모리를 크게 키울 수 있겠지만 이것은 굉장히 비효율적이다.따라서 등장한 방법이 바로 가상 메모리(Virtual Memory)이다. 1. 가상메모리(Virtual Memory)란?정의: 메모리 관리 기법의 하나로 매우 큰 메모리인 것처럼 보이게 만드는 것👉 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식장점사용자 프로그램이 물리 메모리보다 커져도 됨 👉 메모리 크기의 제약이 자유로워짐각 사용자 프로그램이 더 적은 메모리를 차지하여 더 많은 프로그램을 동시 수행 가능CPU 이용률과 처리율이 높아짐프로그램을 메모리에 올리고 스왑할 때 ..
1. 페이징이란? Paging정의프로세스의 메모리 공간을 동일한 크기의 page 단위로 나누어 물리적 메모리의 서로 다른 위치에 page들을 저장하는 메모리 관리 기법특징물리적 메모리를 page와 같은 크기의 frame으로 미리 나누어둠주소 바인딩을 위해 모든 프로세스가 각각의 주소 변환을 위한 page table을 가짐 Paging 기법 사용 시 발생하는 메모리 단편화 Memory fragmentation메모리 단편화란?물리적 메모리 공간이 작은 조각으로 나뉘어 메모리가 충분히 존재해도 할당이 불가능한 상태발생 이유?paging 기법에서는 프로세스의 논리적 주소 공간과 물리적 메모리가 같은 크기의 page 단위로 나뉘므로 외부 단편화 문제는 발생하지 않음. 하지만❗ 프로세스 주소 공간의 크기가 pag..
1. 정의하드웨어가 프로그램의 가상 주소를 실제 물리적 주소로 변환하는 과정이를 각 바인딩 단계에서 수행할 수 있음 2. 유형 - 컴파일 타임 바인딩 Compile Time Binding주소 변환 시점: 컴파일 시과정: 고급 언어 코드가 컴파일될 때, 변수와 함수의 메모리 주소가 결정됨특징: 고정된 주소, 컴파일된 프로그램이 항상 동일한 메모리 주소를 사용함주소 변환: 컴파일러가 소스 코드를 기계어로 변환하면서 가상 주소를 실제 물리적 주소로 매핑함 - 로드 타임 바인딩 Load Time Binding주소 변환 시점: 프로그램이 메모리에 로드될 때과정: 운영 체제가 프로그램의 실행 파일을 메모리에 로드하면서, 프로그램의 가상 주소를 실제 물리적 주소로 매핑함특징: 로드될 때마다 주소가 달라질 수 있음..
1. 프로세스의 주소 공간정의: 프로세스가 사용할 수 있는 메모리 주소의 범위영역: 하나의 프로세스는 코드 영역, 데이터 영역, 스택 영역, 힙 영역을 가짐. 이중 스택 영역과 힙 영역은 확장되거나 축소될 수 있음코드 영역: 실행할 프로그램의 코드(명령어)가 저장되는 영역데이터 영역: 정적 변수가 저장됨스택 영역: 지역 변수, 함수 이름, 함수 인자와 반환 값 등을 저장힙 영역: 프로그램 실행 시에 동적으로 할당되는 메모리 저장 2. 논리 주소와 물리적 주소물리적 주소(Physical address)메모리가 실제 올라가는 위치심볼릭 주소(Symbolic address)변수를 사용하고, 함수를 호출할 때 변수와 함수 이름으로 접근하는 것처럼 사용컴파일할 때 논리 주소로 변경됨논리 주소(Logical a..
1. 프로세스 제어 블록 (PCB, Process Control Block) - 정의운영체제가 프로세스를 관리하기 위해 사용하는 데이터 구조. 각 프로세스에 대한 중요한 정보를 저장함(마치 상품에 달린 태그 같음) - 특징PCB는 프로세스 생성 시에 만들어짐. 프로세스가 종료되면 폐기됨운영체제는 PCB로 특정 프로세스를 식별하고 해당 프로세스를 처리하는 데 필요한 정보를 판단함생성 위치: 커널 영역 👉 '새로운 프로세스가 생성되었다'는 말은 '운영체제가 PCB를 생성했다'는 말과 같고,'프로세스가 종료되었다'는 말은 '운영체제가 해당 PCB를 폐기했다'는 말과 같음 - PCB에 담기는 정보1) 프로세스ID (PID, Process ID)정의: 특정 프로세스를 식별하기 위해 부여하는 고유한 번호특징:..
1. 정의사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수. 시스템 호출이라고도 부름 2. 필요성보호와 보안: 사용자 프로그램이 직접 하드웨어 자원에 접근하면 시스템의 안정성과 보안에 문제가 발생할 수 있음. 시스템 콜은 이러한 접근을 운영 체제의 통제를 받도록 하여 보호와 보안을 강화함추상화: 시스템 콜은 하드웨어의 복잡한 동작을 추상화하여, 프로그램이 쉽게 하드웨어를 사용할 수 있게 함자원 관리: 운영 체제가 시스템 자원을 효율적으로 관리하고, 사용자 프로그램 간의 자원 충돌을 방지할 수 있음 3. 종류시스템 콜의 종류에는 프로세스 제어, 파일 조작, 디바이스 조작, 정보 유지, 통신, 보호가 있다. - 프로세스 제어 Process Control끝내기 exit, ..
1. 정의CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능CPU가 프로그램을 실행하고 있을 때, 입/출력 장치 혹은 다른 예외 상황이 발생하여 처리가 필요한 경우에 CPU에 알려서 처리하는 기술 2. 필요성실시간 처리: 중요한 이벤트나 작업이 발생했을 때, CPU가 이를 즉시 처리하여 시스템의 반응성을 높임효율적인 자원 사용: CPU가 유휴 상태로 대기하지 않고, 필요한 작업이 발생했을 때만 개입하여 시스템 자원을 효율적으로 사용함다중 작업 처리: 여러 작업을 동시에 처리하기 위해 CPU가 중요한 작업을 우선 처리하고 나머지 작업을 관리할 수 있음 3. 처리 과정1) 실행중인 프로그램을 중단2) 현재 프로그램 상태를 보관 (컨텍스트 스위칭 = 문맥 교환)3..