전체 글 149

[OS] 멀티 스레드

멀티 스레드 멀티 스레드 한 프로세스 내에서 여러 스레드를 두는 것 멀티 프로세스 대신 멀티 스레드를 사용하는 이유 스택을 제외한 자원을 공유하기 때문에 자원의 효율성 증대 프로세스 생성 비용보다 스레드 생성 비용이 적다. 프로세스 간 컨텍스트 스위칭 시 오버헤드가 크지만 스레드는 메모리를 공유하기 때문에 자원 소모가 적다. 처리 비용 및 응답 시간 단축 프로세스 간 통신(IPC)보다 스레드 간의 통신 비용이 적다. 스레드 간의 전환 속도가 훨씬 빠르다. 멀티 스레드 사용 시 주의할 점 힙 영역을 공유하기 때문에 힙 영역 자원 사용 시 동기화 필수 동기화를 위한 락이 과도하게 사용되면 성능이 저하된다. 일부 스레드가 종료되면 프로세스 전체가 종료될 수 있다.

[OS] 동기와 비동기의 차이

동기와 비동기의 차이 동기란? 동시에 일어난다는 뜻입니다. 어떠한 요청을 하였을때 응답(결과)을 한자리에서 동시에 일어난다는 뜻입니다.(한가지 일을 하면 결과가 나올때까지는 다른일은 정지가 된다는 뜻입니다.) 비동기 동시에 일어나지 않는다는 뜻입니다. 어떠한 요청을 하였을때 응답이 한자리에 동시에 일어나지 않아도 된다는 뜻입니다.(한가지일을 마칠동안 다른 일도 실행이 된다는 뜻입니다.) 동기의 장/단점 장점: 설계가 단순(직관)하다.(구성하기 쉽다.) 단점: 효율성이 떨어진다. 비동기의 장/단점 장점: 결과가 나오기까지 시간이 걸리지만 다른 작업을 수행할수 있다. (효율성이 좋다.) 단점: 각각의 일마다 결과시간이 달라서 설계가 복잡하다. 추가적인 궁금한부분 비동기와 병렬의 차이? 비동기는 눈속임으로 동..

[OS] 단편화

주기억장치 할당 기법 단일 분할 할당 기법 다중 분할 할당 기법 다중 분할 할당 기법 주기억장치에 여러 개의 프로그램 동시 적재 기법 다중 프로그래밍을 위한 기법 고정 분할 할당, 가변 분할 할당 MTF(Multiple contiguous Fixed parTition allocation, 고정 분할 할당) 기법 정적 할당 기법 분할된 메모리(크기 일정)에 배치 한 영역에 한 프로그램 적재 가능 단편화 발생 현재는 안 쓰임 단편화 할당과 반납의 과정에서 사용되지 않고 낭비되는 빈 공간 내부 단편화: 공간이 남는 것 외부 단편화: 공간이 작아서 할당을 못하는 것 분할된 메모리 영역 크기 4k, 프로그램 크기가 5K? 외부 단편화 분할된 메모리 영역 크기 4k, 프로그램 크기 2K? 내부 단편화 MVT(Mul..

[OS] 가상메모리

가상 메모리 물리적인 메모리의 크기 한계를 극복하기위한 기술입니다. 가상메모리를 사용하면 100MB메모리에 200MB의 프로세스를 수행할수 있습니다.(수행에 필요한 프로그램의 일부분을 메모리에 올리는 방법) 가상메모리가 구동하는 아이디어 cpu가 프로세스의 공간을 참조할때에는 먼저 가상메모리를 참조한다. 가상메모리는 실제 메모리를 참조한다. 1→2 의 변환과정을 빠르게 해주기 위해서 MMU라는 하드웨어칩을 지원받는다. MMU(Memory Management Unit): CPU에 코드 실행 시, 가상 주소 메모리 접근이 필요할 때 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치. 페이징 시스템(Paging System) 페이징 시스템은 가상메모리 구현에서 가장 많이 쓰이는 기술이다. Page : 고정..

[OS] Scheduler

Scheduler 스케쥴러란? 시스템이 실행하고자 할 때 CPU를 프로그램에게 할당하는 과정 프로세스(작업) 실행을 위한 일종의 계획표다. 계획표의 종류는 3가지이다. Scheduling Queue(스케쥴링 큐)란? 스케쥴링을 위한 큐. 즉, 프로세스를 관리하기 위한 큐 Job Queue (Batch Queue): 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue : 현재 메모리 내에 존재하면서 CPU를 점유해서 실행되기를 기다리는 프로세스의 집합 Device Queue : Device I/O(Input, Output) 작업을 대기하고 있는 프로세스의 집합 스케쥴러의 종류 장기 스케쥴러, Job Scheduler *degree of multiprogramming의 제어 디스크와 메모리 사..

카테고리 없음 2022.03.03

[OS] Deadlock(교착상태)

교착상태의 개념과 조건 교착상태(Deadlock)란? 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태. 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 교착상태 발생의 4가지 조건 교착상태가 발생하기 위해서는 다음의 네가지 조건이 충족되어야 하는데, 이 네가지 조건중 하나라도 충족되지 않으면 교착상태가 발생하지 않는다. 상-점-비-환 상호배제 : 자원은 한 번에 하나의 프로세스만 사용할 수 있어야 한다. 점유대기 : 이미 자원을 사용중인데, 다른 프로세스가 사용중인 자원을 사용하기 위해 대기하고 있는 상태의 프로세스가 존재해야 한다. 즉, 미리 줄 서있어야 한다. 비선점 : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다. 즉, 새치기 금지! 환형대기(순환대기)..

[OS]Context switching

Context switching 컨텍스트(Context)란? CPU가 해당 프로세스를 실행하기 위한 해당 프로세스의 정보들을 말함 이러한 컨텍스트는 프로세스의 PCB(Process Control Block)에 저장된다. 그렇기 때문에 이전 작업을 PCB에서 불러와서 이어서 하는 작업이 가능하다. 컨텍스트 스위칭(Context Switching)? 프로세스의 정보의 교체??? 멀티프로세싱하기 위해 CPU를 나눠서 사용하기 위해 Context를 교체하는 것이 Context Switching 단점 Context Switching 때 해당 CPU는 아무것도 못함. → 그래서 빈번하게 스위칭이 발생하면 오버헤드가 발생해 효율 및 성능이 저하된다. 🚩오버헤드란 ? 오버헤드(overhead)는 어떤 처리를 하기 위해..

[OS] CPU Scheduler, Scheduling Algorithm

CPU Scheduler, Scheduling Algorithm CPU Scheduling 단기 스케쥴링이라고도 한다. 단기 스케쥴러(CPU Scheduling)을 리마인드 해보자 메모리와 CPU 사이의 스케쥴링을 담당하는 것으로 어떤 프로세스를 실행(Running) 상태로 전환할 지 결정하는 것이다. 선점과 비선점 선점 (Preemptive) : 자리 뺏기 가능, 누가 앉아서 먼저 자리에 앉아서 작업하고 있는데 그게 끝나든 안끝나든 상관없이 자리를 뺏어서 내 작업 실행하기 즉, 새치기 가능한 방식 비선점 (Non-Preemptive) : 절대 안뺏기는 방식 즉, 새치기 절대 불가능 CPU Scheduing Algorithm First-Come, First-Served (FCFS) 먼저 온 놈 먼저 처리..