Computer Science/Operating System
-
OS 핵심 요약Computer Science/Operating System 2022. 1. 15. 23:32
OS 핵심 요약 [프로세스, 스레드] ⦁프로세스 -정의, 특징(독립 주소 공간), 세부특징(4영역), 스레드와의 관계(최소 1개) ⦁스레드 -정의, 특징(스택만 할당) ⦁멀티프로세스 -장점(안전성), 단점(오버헤드, Context Switching) ⦁멀티스레드 -장점(메모리 공유), 단점(안전성) [PCB, Context Switching] ⦁PCB(Process Control Block) -프로세스 메타데이터 저장(3영역), LinkedList 방식 추가 ⦁Context Switching -이전 프로세스 상태를 PCB에 보관, 다른 정보를 PCB에서 레지스터 적재 [CPU 스케줄링] ∙프로세스 상태 -New, Ready, Running, Waiting, Terminated ∙비선점 스케줄링 -FCFS..
-
14.파일 시스템Computer Science/Operating System 2021. 8. 29. 14:54
∙파일 시스템 ∘컴퓨터에서 파일이나 자료를 쉽게 CRUD할 수 있도록 유지 및 관리하는 방법 -하드디스크와 메인 메모리 속도차를 줄여준다. -하드디스크 용량을 효율적으로 이용한다. ∙접근 방법 ➀순차 접근(Sequential Access) -연속적으로 파일에 접근하는 방법(=Array) -주로 읽거나 쓸 때 사용 ➁직접 접근(Direct Access) -특별한 순서 없이 파일에 접근하는 방법(=Hash) -검색이 빠르기 때문에 데이터베이스에 활용된다. ➂기타 접근 -직접 접근 파일에 기반하여 색인(index)를 구축 -크기가 큰 파일의 입출력 탐색 방법 ∙디렉터리와 디스크 구조 ➀1단계 디렉터리 -파일들은 서로 유일한 이름을 가진다 ➁2단계 디렉터리 -MFD: Mater File Directory -UF..
-
13.메모리Computer Science/Operating System 2021. 8. 27. 00:20
∙메인 메모리 ∘CPU가 직접 접근할 수 있는 장치, 프로세스가 실행되려면 프로그램이 메모리에 올라와야 한다. -주소가 할당된 일련의 바이트들로 구성되어 있다. -CPU는 레지스터가 지시하는 대로 메모리에 접근하여 다음에 수행할 명령을 가져온다. -명령 수행 시 메모리에 필요한 데이터가 없으면 MMU가 해당 데이터를 우선 가져온다. ∙메모리 관리 장치(MMU)(Memory Management Unit) ∘CPU가 메모리에 접근하는 것을 총 관리하는 하드웨어 -논리 주소를 물리주소로 변환해준다. -CPU와 메인 메모리 속도를 맞추기 위해 캐시가 존재한다. -base와 limit 레지스터를 활용해 메모리를 보호한다. (base
-
12.페이지 교체 알고리즘Computer Science/Operating System 2021. 8. 26. 17:03
∙페이지 교체 알고리즘 ∘메모리가 꽉 찼을 때 필요한 페이지를 올리기 위해 하드디스크로 내려갈 페이지를 결정하여 교체하는 알고리즘 -victim page: swap out이 되는 페이지 ○Page Reference String -연속된 페이지를 참조할 때는 한 번 page fault가 발생하면 같은 페이지를 사용하는 동안 절대 다시 발생 할 수 없기 때문에, 연속된 페이지는 생략하고 하나의 페이지 번호만 나타내는 방법 -page fault: 주소 공간에는 존재하지만 RAM에는 없는 데이터나 코드에 접근 하였을 때 그 데이터나 코드를 메모리에 가져와서 프로그램을 계속적으로 작동하는 기법 ➀FIFO 알고리즘 -First In First Out, 메모리에 먼저 올라온 페이지를 먼저 내보내는 알고리즘 -처음 프..
-
11.페이징(Paging), 세그먼테이션(Segmentation)Computer Science/Operating System 2021. 8. 25. 23:55
∙메모리 관리 기법 ∘다중 프로그래밍 시스템에서 여러 프로세스를 수용하기 위해 주기억장치를 분할하는 기법 ➀연속 메모리 관리 -프로그램 전체가 하나의 커다란 공간에 연속적으로 할당 ➀고정 분할 기법: 주기억장치가 고정된 파티션으로 분할(내부 단편화) ➁동적 분할 기법: 파티션들이 동적 생성되며 자신의 크기와 같은 파티션에 적재(외부 단편화) -단편화: 기억 장치의 빈 공간이 여러 조각으로 나뉘는 현상 ➁불연속 메모리 관리 -프로그램의 일부를 서로 다른 주소 공간에 할당 -페이지: 고정 사이즈의 작은 프로세스 조각 -프레임: 페이지 크기와 같은 주기억장치 메모리 조각 -세그먼트: 서로 다른 크기를 가진 논리적 블록이 연속적 공간에 배치되는 것 -페이징: 페이지 단위의 논리-물리 주소 관리 기법 ➀단순 페이..
-
10.세마포어(Semaphore), 뮤텍스(Mutex)Computer Science/Operating System 2021. 8. 24. 20:43
∙임계 구역(Critical Section) ∘여러 프로세스가 공유 데이터를 접근하는 프로그램 코드 부분 ∙세마포어 ∘멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법 -P: 임계 구역 들어가기 전에 수행(ex)S==1->S==0) -V: 임계 구역에서 나올 때 수행(ex)S==0->S==1) -S는 0이상의 정수 ∙뮤텍스 ∘임계 구역을 가진 스레드들의 실행시간이 서로 겹치지 않고 각각 단돈으로 실행되게 하는 기술 -lock: 현재 임계 구역에 들어갈 권한을 얻음(다른 프로세스/스레드가 임계 구역 수행 중이면 종료까지 대기) -unlock: 임계 구역을 모두 사용했음을 알림(대기 중인 다른 프로세스/스레드가 임계 구역에 진입) -S==1인 이진 세마포어 ➀데커(Dekker) 알고리즘 -fla..
-
9.경쟁 상태(Race Condition)Computer Science/Operating System 2021. 8. 23. 15:47
∙경쟁 상태 ∘공유 자원에 대해 여러 프로세스가 동시에 접근할 때, 결과값에 영향을 줄 수 있는 상태 ➀커널 작업 수행 중 인터럽트가 발생하여 같은 데이터를 조작하는 경우 ->커널모드에서 작업을 수행하는 동안 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하게 한다. ➁프로세스가 시스템 콜을 하여 커널 모드로 진입하여 작업을 수행하는 도중 Context Switch가 발생 ->프로세스가 커널모드에서 작업을 하는 경우 CPU 제어권이 다른 프로세스에게 넘어가지 않도록 한다. ➂멀티 프로세스 환경에서 2개 이상의 CPU가 공유 메모리 내의 커널 데이터에 동시에 접근할 때 ->커널 내부 공유 데이터에 접근할 때마다, 그 데이터에 대한 lock/unlock을 한다. 출처 링크
-
8.데드락(Dead Lock)Computer Science/Operating System 2021. 8. 22. 21:47
∙데드락 ∘둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 무한히 기다리는 상황(교착 상태) ∙데드락 발생 조건 ➀상호배제: 자원은 한 번에 한 프로세스만 사용할 수 있다. ➁점유대기: 최소 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재해야 한다. ➂비선점: 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다. ➃순환 대기: 대기 프로세스의 집합이 순환 형태로 자원을 대기하고 있어야 한다. ∙데드락 처리 ➀예방 -교착 상태 발생 조건 중 하나를 제거하면서 해결한다. -자원 낭비가 엄청 심하다. ➀상호배제 부정: 여러 프로세스가 공유 자원 사용 -동기화 관련 문제 발생 가능 ➁점유대기 부정:..