CS
-
메모리 관리(Memory Management)CS/OS(운영체제) 2022. 6. 12. 18:52
정적 할당 - 프로그램 실행 전에 할당하는 것. - 정적 , 전역 변수를 선언해야 함. 동적 할당 - 런타임 시점에 할당하는 것. - 프로그램이 동적으로 메모리를 할당한다. (요구될 때) 동적 할당이 필요한 이유 : 나중에 얼마나 많은 메모리가 사용될 지 정확히 알 지 못하기 때문이다. Memory Management 메인 메모리는 두 가지 부분으로 나뉜다. 1. 운영체제 부분(resident monitor, kernel) 2. 유저 부분 ( 여러 프로세스들을 수용하기 위해 더 많이 서브로 나뉨.) 요구 사항 : 이전 , 보호 , 공유 , 논리적 조직, 물리적 조직 이전(Relocation) 메인 메모리는 일반적으로 여러 프로세스들 사이에서 공유된다. - 프로그램이 어디에 배치될 지는 미리 알 수 없음...
-
교착 상태(DeadLock)CS/OS(운영체제) 2022. 6. 12. 16:59
교착 상태란 시스템 자원을 두고 경쟁하거나 서로 통신하는 프로세스 집합의 영구 차단을 말한다. 프로세스 집합의 각 프로세스가 다른 차단된 프로세스에 의해서만 트리거될 수 있는 이벤트를 대기하면서 차단되면, 일련의 프로세스가 교착된다. 즉, 이벤트가 트리거 되지 않아 2개 이상의 프로세스를 진행할 수 없는 상황을 말한다. Example. 시스템이 2개의 tape 드라이브를 갖고 있다고 하자. P1과 P2는 각각 하나의 테이프 드라이브를 가지며, 각각 다른 테이프 드라이브가 필요하다. Semaphore A와 B가 1로 초기화 되어 있다. P1 P2 semWait(A); semWait(B); semWait(B); semWait(A); 모든 교착 상태는 2개 이상의 프로세스로 인한 자원 요구 충돌과 관련됨. R..
-
동기화(Synchronization) 2CS/OS(운영체제) 2022. 6. 12. 15:41
Mutual Exclusion(상호 배제)는 지정된 시점에 단일 스레드만 공유 자원에 접근할수 있어야 함을 의미한다. 그러나 꼭 mutex만이 동시 구축에 필요한 요소는 아니다. 조건 동기화 - 다중 스레드 접근 동기화 시스템 상태가 특정 조건을 충족할 때 까지 대기하여 여러 스레드의 실행 순서를 지정하는 것. 상태 변수(Condition Variables) 상태 변수 CV - CV는 이벤트가 발생할 때 까지 스레드가 차단하는 방법이다. - CV는 조건에 대한 대기 큐이다.(디익스트라 알고리즘의 아이디어) - CV는 mutex와 연관되며, 개념적으로 몇 조건과 관련이 있다. Operation - 스레드는 상태 변수에서 대기할 수 있으며, 다른 스레드가 조건을 알릴 때 wake up 된다. 대기 조건 : ..
-
동기화(Synchronization)CS/OS(운영체제) 2022. 6. 1. 23:11
동기화의 목표는 스레드의 협업이 올바르게 운영된다는것을 보증하기 위함임. Race Condition 공유 리소스에 스레드가 접근하게 된다면, Incorrect error 및 Reproducible이 발생한다. 실행 시기에 따라 다르지만, MultiThreading - 실행은 CPU 스케줄러에 의해 interleaved 될 수 있음. (예측할 수 없는 요인) MultiProcessor - 멀티프로세서 안에서의 실행 시기는 다양함. (프로세서가 얼마나 busy한지에 의존) 스레드 문제 - atomic 작업에서 공유 리소스에 접근하기 어려움. - Atomic operation : 전체 또는 전혀 인터럽트가 불가능하다. - 단일 연산자를 여러 개의 명령으로 컴파일 할 수 있음 ( ++ 연산자는 로드/추가/저장의..
-
스레드(Thread)CS/OS(운영체제) 2022. 5. 30. 16:59
Process And Thread Process(프로세스) - 실행 중인 프로그램 ( 프로그램의 인스턴스 ) - 명령 시퀀스 및 관련 시스템 리소스 집합의 실행으로 특정지어지는 활동 단위 2가지 특성 자원 소유 단위(The unit of resource Ownership) - 시간이 흐름에 따라 프로세스에는 메인 메모리, I/O 채널 , I/O 장치 및 파일과 같은 리소스의 제어 또는 소유권이 할당될 수 있음. 일정/실행 단위(The unit of scheduling / execution) - 따라서 프로세스는 실행 상태(Running,Ready, etc..)와 우선순위(Priority)를 가지며 OS에 의해 스케줄링되는 엔티티. 여태까지 포스팅 한 글에서는 Process가 단일 실행 Sequence를 ..
-
인터럽트(Interrupts)CS/OS(운영체제) 2022. 4. 17. 16:22
인터럽트는 프로세서 최적화의 향상을 제공함. - 대부분의 입출력 장치는 프로세서보다 느림. - 프로세서는 장치를 기다리기 위해 반드시 일시정지함. - 프로세서의 사용이 낭비됨. Interrupt Processing HW : 장치 컨트롤러 또는 다른 시스템 하드웨어가 인터럽트 이슈를 발생시킴 -> 프로세서는 현재 명령의 실행을 끝냄 -> 프로세서는 인터럽트 인식 신호를 보냄 -> 프로세서는 PSW와 PC의 컨트롤 스택에 push함 -> 프로세서는 인터럽트에 기반한 새 PC value를 load함 SW : 프로세스 상태 정보를 저장함 -> 프로세스 인터럽트 -> 프로세스 상태 정보를 다시 저장함 -> old PSW와 PC를 재저장함 인터럽트와 예외(Interrupts and Exception) 인터럽트의 두..
-
컴퓨터 하드웨어(Computer Hardware)CS/OS(운영체제) 2022. 4. 17. 15:04
컴퓨터의 모든 명령은 CPU가 메모리 접근을 요구하면서 실행된다. Processor(프로세서) Arithmetic/Logic Unit(ALU) - 수학적 계산을 수행하고 , 논리적 비교를 수행한다. Central Processing Unit(CPU) - ALU, Control Unit, registers을 이용하기 위해 명령어를 설정하고 수행하는 하드웨어 구성요소. Multiprocessors - 각각의 칩은 코어라고 불리는 멀티 프로세서들을 포함하고, 각각은 큰 메모리 캐시에 다양한 계층으로 존재한다. 프로세서들의 진화 Graphical Processing Units(GPU) - 수학적 연산을 위한 요구를 증가시킴. - 싱글 명령 멀티 데이터 기술을 사용함으로써 데이터의 배열 연산을 효율적으로 제공함...
-
Process SchedulingCS/OS(운영체제) 2022. 4. 12. 23:33
프로세스 스케쥴링의 종류(level) Long-term Scheduling ( job scheduler ) - 시스템에서 처리할 수 있는 프로그램을 결정한다. Medium-term Scheduling ( swapper ) - 메인 메모리 안에 있는 부분적이거나 완전한 프로세스들의 수를 추가할지 결정한다. Short-term Scheduling ( CPU scheduler ) - 프로세서에 의해 실행될 사용 가능한 프로세스를 결정한다. I/O Scheduling - 프로세스의 보류중인 I/O 요청에 대한 결정은 사용 가능한 I/O 장치에서 처리한다. 선택 함수 ( Select Function ) - 준비 프로세스 중 실행을 위해 다음에 선택할 프로세스를 결정한다. w : 지금까지 시스템에서 보낸 시간 e ..