본문 바로가기

운영체제

(8)
[OS]데드락이란? [데드락이란?] 둘 이상의 프로세스가 서로 상대방에 의해 충족될 수 있는 event를 무한히 기다리는 현상 [데드락 발생 4대요소] 데드락 발생 4가지의 조건을 모두 만족해야 한다. Multi exclusion(상호배제) 매순간 하나의 프로세스만이 자원을 사용할 수 있다. No preemption(비선점) 프로세스는 자원을 스스로 내어놓을 뿐 강제로 빼앗기지 않는다. Hold end wait(보유대기) 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유 자원을 놓지 않고 계속 갖고 있는다. Circuler wait(순환대기) 자원을 기다리는 프로세스간에 사이클이 형성되어야한다. [데드락 해결 방법 - 미리 예방하는 방법] 교착상태 예방(Deadlock Prevention) 교착상태 발생 요인 4가지 조건..
[OS] 임계영역(Critical Section), 상호배제(Mutex), 세마포어(Samaphores) [임계영역(Critical Section)] 임계영역 공유 리소스에 대한 동시 엑세스는 예기치 않거나 잘못된 동작을 발생할 위험이 있다. 이렇게 공유 데이터를 접근하는 코드 부분을 임계영역이라고 한다. 임계영역을 충족하는 조건 상호 배제 : 프로세스 A가 ciritical section 부분을 수행 중이면 다른 모든 프로세스들이 사용하면 안된다. Progress : 임계영역을 사용하는 프로세스가 없다면 필요한 프로세스가 사용할 수 있도록 해야한다. 유한대기 : 프로세스가 임계영역에 들어가려고 요청한 후부터 그 요청이 허용되기까지 다른 프로세스들이 임계영역에 들어가는 횟수에는 한계가 있다. [크리티컬 섹션의 독점 사용을 보장하는 매커니즘] 상호배제(Mutex) 쓰레드의 동시 접근을 허용하지 않는다. 임계영..
[OS] 쓰레드와 멀티쓰레드 [쓰레드] 쓰레드란? 프로세스(프로그램) 실행의 단위이며 하나의 프로세스는 여러개의 쓰레드로 구성이 가능하다. 하나의 프로세스를 구성하는 쓰레드들은 프로세스에 할당된 메모리, 자원 등을 공유한다. 프로세스와 같이 실행, 준비, 대기 등의 실행 상태를 갖으며 실행 상태가 변할때마다 쓰레드 문맥교환(context switching)을 수행한다. 각 쓰레드별로 자신만의 스택과 레지스터를 갖는다. 쓰레드는 프로세스보다 생성 및 종료시간, 쓰레드간의 전환 시간이 짧다. 쓰레드는 프로세스의 메모리, 자원등을 공유하므로 커널의 도움없이도 상호간의 통신이 가능하다. PC Resister를 쓰레드마다 독립적으로 할당하는 이유 PC 값은 쓰레드가 명령어의 어디까지 수행하였는지를 나타나게 한다. 쓰레드는 CPU를 할당받았다..
[OS]시스템구조 - 컴퓨터 계층구조 저장장치 계층구조 Caching: copying information into faster storage system 재사용 목적 처음에는 밑에부터 읽어 오지만 기록된건 Cach memory에서 불러와 사용한다 파일 시스템용 전원 Off시 유지해야할 정보가 있으면 그것을 파일 형태로 보조 기억 장치에 저장 메모리는 휘발성이므로 비휘발성 매체인 디스크를 파일 시스템용으로 흔히 사용 메모리의 연장공간인 스왑영역 OS는 프로그램 수행에 당장 필요한 부분만 메모리에 올려 놓고 나머지는 디스크의 스왑영역에 내려놓게 된다 디스크에 내려놓는 일을 스왑아웃이라 한다 스왑아웃된 부분이 필요 시 다시 메모리 영역에 올린다 스왑 영역은 프로그램이 실행 시 내용을 저장했다가 프로그램이 종료될 때 삭제하는 메모리의 연장공간으로..
[OS]동기식/비동기식 [동기식 입출력과 비동기식 입출력] 동기식 입출력(Synchronous I/O) I/O장치까지 직접가서 결과를 보고 온다. 보고온 일을 실행하는 것(Sync-read) 보고온 일을 실제 적어보고 실행(Sync-write) I/O요청 후 입출력 작업시 완료된 후에야 제어가 사용자 프로그램에 넘어간다. → 봉쇄상태(Blocked state) 👉 CPU낭비가 있다. 입출력 요청의 동기화를 위해 장치별로 큐(queue)를 두어 요청 순서대로 처리된다. 비동기식 입출력(Asynchronous I/O) I/O가 시작된 후, 입출력 작업이 끝나기를 가디리지 않고 제어가 사용자 프로그램에 즉시 넘어간다. [DMA(Direct Memory Access)] 메모리 직접 접근이 가능하다. CPU에 너무 많은 interrup..
[OS]인터럽트(Interrupt) 2. Interrupt OS 커널에는 인터럽트가 들어왔을 때 해야할 일을 미리 다 프로그래밍 해서 보관하고 있다 → 이중 하나가 인터럽트 처리 루틴 인터럽트 당한 시점의 레지스터와 program counter를 save한 후, CPU의 제어를 처리 루틴에 넘긴다 Software Interrupt = Trap ⇒ Exception, System call I/O를 위한 인터럽트: 1) 요청: Software interrupt 2) 종료: Hardware interrupt 인터럽트 종류별로 할 일에 대해 OS에 정의가 되어 있다 사용이 끝남에 때해서는 device controller가 interrupt line에 알린다 점유 시간이 종료된 경우 timer가 interrupt line에 알린다 interrupt..
[OS]시스템구조 OS중 항상 메모리에 올라가 있는 부분은 전체 OS 중 일부분에 해당 → 커널 1) device controller: 작은 CPU와 같은 역할(I/O device를 관리하는 작은 CPU) → 장치에서 로컬 버퍼로 읽어오는 역할 데이터를 모두 가지고 왔는지 확인하는 작업을 위해 인터럽트를 발생시켜 CPU에게 알림 2) local buffer: 작업공간, 장치로부터 들어오고 나가는 데이터를 임시로 저장하기 위한 작은 메모리 3) memory: CPU가 놀지 않도록 하기 위해 I/O발생 시 I/O Controller가 작업하고 CPU는 memory와 일을 한다 4) memory controller: 메모리 접근 순서 제어 5) DMA controller: 직접 메모리 접근 6) timer: 특정 프로그램의 C..
[OS]운영체제 시스템 소개 1. 운영체제(Operating System, OS) 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어 사용자오 각종 소프트웨어 연결 2. 운영체제 목적 컴퓨터 시스템의 자원을 효율적으로 관리 → 주어져있는 제한된 하드웨어 자원으로 효율적 관리(=형평성 있는 자원 분배) 컴퓨터 시스템을 편리하게 사용할 수 있도록 환경제공 3. 운영체제 분류 동시작업 가능여부 [1]단일작업(Single tasking): 한번에 하나의 작업 처리 ex) MS-DOS [2]다중작업(Multi tasking): 동시에 두개 이상의 작업처리 ex) UNIX, MS Windows 등 사용자수 [1]단일 사용자(Single user): ex) MS-DOS, MS Windows [2]다중 사용자(Multi user): ex) UNIX,..