2024/08 4

교착상태 / 기아상태

교착상태 (Deadlock)운영체제에서 교착상태란, 시스템 자원에 대한 요구가 뒤엉킨 상태이다.즉, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황을 말한다.프로세스는 자원 요청->자원사용->자원해제 순서로 동작한다. 사실 초기에 일괄 처리 시스템에서는 교착상태가 자주 발생하지 않았지만, 시스템 효율성을 증가시키고 제한된 자원의 사용률을 높이기 위해 사용하는 병행 처리 기술과 자원 공유 기술의 부작용으로 교착상태가 자주 발생하게 된 것이다.  교착상태의 발생조건1. 상호 배제 -  한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때까지 기다려야 한다.2. 점유와 대기 - 자원을 최..

운영체제 2024.08.17

경쟁상태(Race Condition)

경쟁상태(Race Condition)란?- 두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어 졌는지에 따라 그 실행 결과가 달라지는 상황을 말한다. Race의 뜻 그대로, 간단히 말하면 경쟁하는 상태, 즉 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 말한다.  경쟁상태가 발생하는 경우커널 작업을 수행하는 중에 인터럽트 발생문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우해결법 : 커널모드에서 작업을 수행하는 동안, 인터럽트를 disable시켜 CPU제어권을 가져가지 못하도록 한다.프로세스가 'System call'을 하여..

운영체제 2024.08.17

프로세스(Process) vs 스레드(Thread)

프로그램(Program)이란- 사전적 의미 : 어떤 작업을 위해 실행할 수 있는 파일- 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 프로세스(Process)란- 사전적 의미 : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램메모리에 올라와 실행되고 있는 프로그램의 인스턴스 ( 독립적인 개체 )운영체제로부터 시스템 자원을 할당받는 작업의 단위 즉, 동적인 개념으로는 실행된 프로그램을 의미한다. - 할당핟는 시스템 자원의 예   : CPU시간, 운영에 필요한 주소공간, Code, Data, Stack, Heap의 구조로 된 독립된 메모리 영역프로세스 특징프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다.Code 영역 : 프..

운영체제 2024.08.16

게이트웨이 / 방화벽

게이트웨이란?다른 네트워크로 나가거나 다른 네트워크에서 들어오도록 하기 위해 꼭 필요한 통신 기기(로컬 호스트 중 하나)의 일부분이며, 통신 데이터가 다른 네트워크의 호스트와 통신하기 위해서 반드시 통과해야 하는 내부의 출입문이라 할 수 있다. 게이트웨이는 왜 필요할까?동일한 네트워크에 있는 소수의 호스트 컴퓨터 간에 통신은 대상 간에 직접 통신을 하면 되기 때문에 통신 경로가 아주 단순하다. 그냥 서로 통신하면 된다. 그러나 서로 다른 네트워크에 있는 다수의 호스트 컴퓨터들이 서로 통신을 할 경우에는, 대상 간의 직접 통신은 통신 경로가 아주 방대해지고 복잡해지기 때문에 비효율적이고 관리가 어렵다.  따라서 통신 경로를 단순화하고, 연결 회선을 효율적으로 관리하기 위해서 다수의 호스트들을 여러 그룹으로..

네트워크 2024.08.02