데드락과 데드락을 해결하는 방안
·
CS/Operating Systems
데드락이란? 두 개 이상의 프로세스가 자원을 점유한 상태에서 다른 프로세스가 점유하고 있는 자원을 요구하며, 서로의 작업을 끝나기만을 기다리며 둘 다 영원히 끝나지 않는 것. 교착상태의 발생 조건 아래의 4가지가 모두 성립되어야 한다. 1. 상호 배제 - 자원은 한 번에 한 프로세스만 사용 가능. 2. 점유 대기 - 최소한 하나의 자원을 점유하고 있으며, 다른 프로세스에 할당되어 사용하고 있는 자원을 점유하기 위해 대기 상태가 있어야 함. 3. 비선점 - 다른 프로세스에 할당된 자원은 사용이 끝날때 까지 강제로 빼앗을 수 없음 4. 순환 대기 - 여러 프로세스가 있을 때, 각 프로세스들이 꼬리를 물며 점유한 자원을 대기한 상태여야하고, 마지막 프로세스가 첫 프로세스가 점유한 자원을 요구해야함. 비유하자면..
Context Switching
·
CS/Operating Systems
Context Switch cpu가 현재 작업중인 프로세스에서 다른 프로세스로 넘어갈 때 지금까지의 프로세스 상태를 저장하고 새 프로세스의 저장된 상태를 다시 적재하는 작업을 Context Switching이라 한다. 1. Pointer : 프로세스의 준비상탠 대기상태의 큐를 구현할 때 Pointer를 사용함 2. 상태 : 현재 프로세스가 어떤상태인지 나타냄 3. 프로세스 구분자 : 프로세스 id 4. 프로세스 카운터 : 다음에 실행될 명령어의 위치를 가리키는 PC의 값을 저장함 5. 레지스터 정보 : 실행되는 중에 사용하던 중간값들 보관됨 6. 메모리 정보 : 프로세스의 메모리 위치정보 및, 경계 레지스터 값, 한계 레지스터 값 보관됨 - Task의 대부분 정보는 레지스터에 저장되고, PCB로 관리되고..
프로세스와 스레드의 차이
·
CS/Operating Systems
Program 명령어의 집합으로, 어떤 작업을 수행하기 위한 파일입니다. Process 운영체제로부터 시스템 자원을 할당받는 작업의 단위이고, 실행된 프로그램을 의미합니다. 각각의 프로세스는 코드, 데이터, 스택, 힙 영역을 포함하는 독립적인 메모리 공간을 할당받습니다. 프로세스가 사용하는 메모리 공간은 다음과 같습니다. 1. 코드 영역: - 프로그램의 실제 실행 코드가 저장되는 영역. - 읽기 전용으로 되어있어서 프로그램이 실행중에 수정할 수 없습니다. 2. 데이터 영역(static영역이라고도 함): - 전역변수와 정적변수가 저장되는 영역. - 초기화된 데이터와 초기화되지 않은 데이터 포함허묘ㅡ 프로그램 실행 도중에 값을 변경 가능합니다. 3. 스택 영역: - 함수 호출과 관련된 정보를 저장하는 영역...
동시성과 병렬성
·
CS/Operating Systems
동시성 동시성이란, 동시에 처리하게끔 보이는 것으로 서로 다른 작업들이 서로 영향을 주면서 동시에 실행되는 것처럼 보이게 하는 것입니다. 사용 코어수는 싱글로, 동작 방식은 싱글 코어에서 멀티스레드를 동작시키는 방식입니다. 위의 그림에서 왼쪽에 해당하는 내용이지요. 다른 작업으로 바꾸어 실행될 때, 내부적으로 Context Switch가 실행됩니다. 여기서 Context Switch란? 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스로 전환되는 것을 의미합니다. CPU에서 작업중인 프로세스를 Waiting상태로 돌리고, 다른 프로세스를 Running 상태로 만들어 수행합니다. (실행 중지할 프로세스 정보를 메인메모리에 저장하고, 메인메모리로부터 프로세스2 PCB정보를 로드하여 다음 작업을 실..
교착 상태
·
CS/Operating Systems
2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만을 기다리며 작업을 더 이상 진행하지 못하는 상태를 교착상태라고 합니다. 이러한 교착 상태는 시스템 자원, 공유 변수, 응용 프로그램과 같이 다른 프로세스와 공유할 수 없는 자원을 사용할때 발생합니다. 교착 상태의 필요 조건으로는 4가지가 있습니다. 1. 상호배제 : 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 합니다. 배타적인 자원은 임계구역으로 보호되기 때문에 다른 프로세스가 동시에 사용할 수 없습니다. 2. 비선점: 한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없어야 합니다. 자원을 빼앗을 수 없으면 공유할 수도 없으므로 교착상태가 발생할 수 있습니다. 3. 점유와 대기 : 프로세스가 어..
프로세스 주소공간
·
CS/Operating Systems
프로세스의 주소공간은 총 3가지로 나뉩니다. 코드 영역 프로그램의 코드가 저장되는 곳으로, 읽기만 가능합니다. 데이터 영역 전역 변수 같은 데이터가 저장되는 곳으로, 읽고 쓰기가 가능합니다. 스택 영역 함수나 지역 변수가 저장되는 곳으로 읽고 쓰기가 가능합니다. 주소 공간을 나눈 이유는 최대한 데이터를 공유하며 메모리 사용량을 줄여야하기 때문입니다. stack과 데이터를 나눈 이유는 스택 구조의 특성과 전역 변수의 활용성을 위함입니다.
프로세스와 스레드
·
CS/Operating Systems
먼저 프로그램과 프로세스의 차이부터 설명해보자면, 프로그램은 저장장치에 저장되어 있는 정적인 상태이고, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태입니다. 우선 운영체제는 프로그램을 메모리의 적당한 위치로 가져오고, 동시에 작업 지시서를 만드는데 이를 PCB(프로세스 제어블록)이라고 합니다. 이 프로세스 제어블록에는 프로세스를 처리할때 필요한 다양한 정보가 들어있습니다. 이 프로세스 제어블록이 없다면 프로그램이 프로세스로 전환되지 못합니다. 즉 프로그램이 프로세스가 된다는 것은 운영체제로부터 프로세스 제어블록을 얻는다는 뜻이고, 프로세스가 종료된다는 것은 해당 프로세스 제어 블록이 폐기된다는 뜻입니다. 프로세스 = 프로그램 + 프로세스 제어 블록 프로그램 = 프로세스 - 프로세스 제어블록 * 프로..
운영체제
·
CS/Operating Systems
운영체제는 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어입니다. 운영체제의 역할과 목표 1. 자원관리 : 우리는 컴퓨터로 음악을 듣고, 문서를 작성하고, 인터넷을 둘러보지요. 이때 키보드, 네트워크 카드, 사운드 카드등의 컴퓨터 자원을 사용하는데, 운영체제는 이러한 자원을 응용프로그램에 나누어 주어 사용자가 원활하게 작업할 수 있도록 돕습니다. [효율성 - 같은 자원을 관리해도 적은 자원으로 효율적으로 관리해야한다] 2. 자원보호 : 악의적인 사용자나 미숙한 사용자로부터 자원을 보호합니다. 예컨대 어떤 응용 프로그램이 남의 영역을 침범한다면 다른 사람의 데이터를 지울 수도 있기 때문이지요. [ 안정성 - 운영체제가 불안하면 그 피해가 사용자에게 전달되기..
다양한 페이지 교체 알고리즘
·
CS/Operating Systems
FIFO 페이지 교체 알고리즘 시간상 메모리에 가장 먼저 들어온 페이지를 스왑 영역으로 내쫓는 알고리즘. 큐로 구현하며 알고리즘이 가장 간단하다.(그저 가장 오래된 페이지를 내쫓으면 되니까..) 페이지 부재가 가장 많이 발생한다고 한다. 최적 페이지 교체 알고리즘 앞으로 사용하지 않을 페이지를 스왑 영역으로 옮기는 알고리즘. 가장 멀리 있는 대상 페이지로 교체한다. 하지만 미래에 어떤 페이지를 교체할지 모른다는 점에서 실현 불가능함. LRU 교체 알고리즘 사용한지 가장 오래동안 사용하지 않았던 페이지를 대상으로 교체한다, 각 페이지마다 시간기억영역을 따로 두어 사용한다. LFU 페이지 교체 알고리즘 최소 빈도 사용 알고리즘으로, 페이지가 몇번 이용되었느냐에따라 대상 페이지를 선택한다. 즉 사용 횟수가 가..
takoyummy
'CS/Operating Systems' 카테고리의 글 목록