
WSL2와 VSCode를 연동하여 리눅스 개발환경 구축。Linux 코드를 VSCode를 통해 작성하도록 설정리눅스용 윈도우 하위시스템 ( WSL2 : Windows Subsystem for Linux 2 )。Microsoft가 Windows 환경에서 Linux Kern

Computer 。정보( Information )을 처리하는 Machine 컴퓨터 특징범용성 ( Universality )general-purpose computer。NOT , AND , OR 게이트 만으로 모든 계산을 수행가능▶ 간소하게하는 NAND 게이트만으로

운영체제에서 구분되는 두가지 모드 ( Mode Of Operation ) 。보안위협 또는 프로그램의 부적절한 작업실행으로 인한 오작동을 방지하기 위한 용도로 2가지 모드를 구분 ▶ 프로세스가 실행되는 동안 System Call을 통해 유저 모드
OS가 적용되는 다양한 Computing Environments 。OS들은 해당 Computing Environment들이 제공하는 서비스를 잘 지원해줄수 있도록 설계되어야한다.Traditional Computing 。개인PC , file/print ser

프로세스 ( Process )。RAM에 적재되어 실행중이거나 대기 중인 프로그램▶ CPU에서 실행되기위한 프로그램을 Storage( ex. HDD )에서 찾아 RAM으로 복사된 프로그램을 의미。OS의 작업단위 ▶ 운영체제는 프로그램 단위로 실행하므로. 프로세스가 필요

PCB ( Process Control Block ) = TCB ( Task Control Block ) 。OS에서 프로세스에 대한 정보를 활용하기 위해 프로세스가 지닌 모든 정보(= Context)를 저장하는 구조체( struct )

CPU Scheduling。근본적으로 OS의 멀티프로그래밍이 가능하게 하는 필수요소▶ RAM에 적재된 프로세스들을 Concurrently하게 실행하여 CPU 사용률을 극대화
스케쥴링 알고리즘 ( Scheduling Algorithm ) 。RAM에서 Ready Queue에 적재되어 대기중인 프로세스들 중 CPU Core의 제어권을 배정할 우선순위 프로세스를 선택하는 알고리즘 。FCFS , SJ

Operation on Process 。OS는 프로세스를 Creation하거나 Termination하는 기능을 제공해야함 프로세스 생성 ( Process Creation ) : fork() 。 프로세스는 부모 & 자

프로세스는 Concurrently하게 처리될 경우 프로세스 간 Independent하거나, Cooperative하게 처리된다. >- 프로세스가 Independent한 경우 。다른 프로세스와 데이터를 공유하지 않는 프로세스 ▶ 스케듈링만 잘하면 문제가 발생되지 않는다.

스레드 ( Thread ) 하드웨어 스레드 。소프트웨어 스레드 : 프로세스가 할당받은 자원을 이용하는 실행단위 ▶ 프로그램 실행의 가장 작은단위로서 단일 프로세스 내 실행되는 명령어의 흐름 ▶ CPU의 명령어 실행단위로 해석가능 。 과거에
암묵적 스레딩 ( Implicit Threading )。스레드의 생성 및 관리를 컴파일러 ( OpenMP ) or 런타임 라이브러리( java.concurrent )에 의해 수행되는 방식 。멀티코어 시스템에서 멀티 스레딩을 설계 시 기존 명시적 스레딩을
동시성 ( Concurrency ) : 。빠르게 Context Switching하면서 여러 작업을 수행함으로써 여러 작업들을 동시에 실행되는 것처럼 보이게 하는 특성 。논리적 개념으로서 병렬성와 비슷한 의미의 동시실행 ▶ 물

멀티스레딩 。web server와 같은 Client-Server System에서 주로 활용되는 방식 。네트워크 상 IPC 수행 시 복수의 Client 프로세스가 작업을 요청할 경우 Server 프로세스에서 각 요청에 대응하는 스레드를 각각 생성하여 Concurrent
스레드 / 프로세스 간 공유 자원에 접근 시 주의사항。스레드간 통신( IPC )은 프로세스의 논리적 주소공간을 공유자원으로서 공유 ▶ Shared Memory와 Message Passing데이터 불일치( Data Inconsistency ) 문제 。복수의 스레드
경쟁 상황 : ( Race Condition ) 。복수의 프로세스 / 스레드가 단일 자원을 서로 사용 및 조작하려고 경쟁하는 상황 ▶ 복수의 연산이 동시에 공유자원 접근 시 결과가 일관성을 보장받지 못하는 상태 。복수의 스레드 / 프로세스들이 공유메모리
> 프로세스의 코드영역( Code Segment ) 종류 。각 프로세스의 코드영역는 임계영역을 포함. >- Entry-Section 。프로세스가 임계영역에 접근하기위한 접근권한을 요청하는 영역 ▶ 임계영역에 접근하는 프로세스를 제어( Lock ) >- 임계영역 : Critical-Section 。...

프로세스 간 공유된 데이터에 동시 접근 시 주의사항。Message Passing 또는 Shared Memory 방식을 통해 프로세스 간 데이터의 공유를 수행▶ 프로세스가 공유된 데이터에 Concurrent하게 접근하는 경우 데이터 불일치( Data Inconsiste
싱글코어 환경의 경우 인터럽트를 지연처리입출력 인터럽트가 발생하여 Race Condition 발생 시 。공유자원에 접근 및 조작하는 동안 인터럽트를 차단 ▶ 현재 처리중인 Sequence of instruction를 선점등을 통한 문맥교환 없이

> 출처 。운영체제 공룡책 강의

출처 。운영체제 공룡책 강의

프로그램 실행 시 메모리 최적화 기법。 동적 로딩 / 동적 연결▶ 동적 로딩은 프로그램 내부 모듈을 필요할 때 메모리에 적재▶ 동적 연결은 외부 라이브러리를 실행 시점에 연결동적 로딩 ( Dynamic Loading )。프로그램 실행 시 자원을 한꺼번에 메모리에 Loa
가상 메모리 ( Virtual Memory )。주기억장치 ( = RAM )의 크기와 관계 없이 프로세스가 사용할 수 있는 가상의 메모리 주소 공간을 확장하는 메모리 관리 기법 。주로 RAM이 부족할 때 보조기억장치의 Swap Space를 메모리처럼 활용하여 사용하지않

페이지 교체 알고리즘。가상 메모리 시스템