동기화 문제, 세마포어 & 뮤텍스
·
Computer Science/운영체제
동기화 (Synchronization)프로세스들 간에 자원에 대한 접근 순서를 정하거나 특정 기능의 실행 순서를 정하는 행위즉, 여러 프로세스/스레드를 동시에 실행해도 공유 데이터의 일관성을 유지하는 것프로세스의 코드 영역 中 공유 자원을 접근하는 코드를 `임계 영역`이라고 부름경쟁 조건 문제 = 임계 영역의 문제경쟁 조건 (Race Condition)여러 개의 스레드나 프로세스가 동시에 공유 자원에 접근하면서, 실행 순서에 따라 결과가 달라지는 문제즉, 누가 먼저 실행되느냐에 따라 결과가 달라짐이는 예측 불가능한 결과나 시스템의 오류를 초래할 수 있음왜 경쟁 조건이지 ❓여러 스레드 (프로세스)가 공유 자원에 먼저 접근하려고 `경쟁(Race)`하기 때문경쟁 결과에 따라 의도치 않게 동작할 수 있으므로 `..
인터럽트 (Interrupt) & 시스템 콜
·
Computer Science/운영체제
인터럽트 (Interrupt)프로그램을 실행하는 도중 예기치 못한 상황이 발생할 경우CPU가 현재 수행 중인 작업을 일시 중단하고, 다른 작업을 수행하도록 하는 메커니즘구조하드웨어 장치마다 `컨트롤러`라고 불리는 작은 CPU 존재컨트롤러는 장치로부터 출입하는 데이터를 임시로 저장하기 위한 `Local Buffer`라는 `작은 메모리`를 가짐ex) 디스크 = 디스크 컨트롤러 / 메모리= 메모리 컨트롤러개념가정 : 디스크에서 데이터를 읽어오는 작업 中디스크 컨트롤러가 디스크에서 내용을 읽어 로컬 버퍼에 저장.저장하는 작업의 완료 여부는 CPU가 체크하는 것이 아닌, 장치의 컨트롤러가 인터럽트 신호 발생하여 CPU에게 전달 📌 컨트롤러들이 CPU의 서비스가 필요할 때 이를 통보하는 방법 = 인터럽트기본적으로..
CPU 스케줄링
·
Computer Science/운영체제
개요워크로드에 대한 가정일련의 프로세스들이 실행되는 상황 (워크로드) 가정모든 작업은 같은 시간 동안 실행됨모든 작업은 동시에 도착함각 작업은 시작되면 완료될 때까지 실행모든 작업은 CPU만 사용 (= I/O 수행 X)각 작업의 실행 시간은 사전에 알려짐스케줄링 평가 항목 (scheduling metric)-  반환 시간 (turnaround time)작업이 `완료`된 시각에서 작업이 시스템에 `도착`한 시간을 뺀 시간으로 정의위 가정에서 모든 작업은 동시에 도착한다고 가정했으므로, `arrival = 0`∴ 작업 반환 시간 = 작업 완료 시각📌 반환 시간은 성능 측면에서의 평가 기준다른 평가 기준으로는 `공정성`(Fairness)이 있음.성능과 공정성은 스케줄링에서 상충되는 목표임성능 vs 공정성CP..
메모리 & 메모리 관리
·
Computer Science/운영체제
메모리 계층메모리 계층은 레지스터, 캐시 메모리, RAM, 저장장치로 구성이름설명휘발 여부레지스터CPU 내의 작은 메모리O캐시L1,L2 캐시 지칭, L3 캐시도 있음O주기억장치RAM 의미O저장장치HDD/SSDX이러한 계층이 있는 이유는 `경제성`과 `캐시` 때문임.경제성: 16GM 램 VS 1TB HDD = HDD가 더 쌈 (속도 ∝ 돈)대략 적인 속도 차이 ❓L1 캐시: 약 1ns 이하 (나노초)L2 캐시: 약 3~10nsL3 캐시: 약 10~30nsRAM (DDR4/DDR5): 약 50~100nsSSD (NVMe 기준): 약 100,000ns (100µs)HDD: 약 5,000,000ns (5ms)ex) L3 캐시가 RAM 보다 10배~30배 빠름 캐시 (Cache)데이터를 미리 복사해 놓는 임시 저..
운영체제 개요, 프로세스 & 스레드
·
Computer Science/운영체제
운영체제의 역할과 구조운영체제 역할CPU 스케줄링과 프로세스 관리CPU 소유권을 어떤프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환 관리메모리 관리: 한정된 메모리를 어떤 프로세스에 얼만큼 할당할지디스크 파일 관리: 디스크 파일을 어떤 방법으로 보관할지I/O 디바이스 관리: 마우스, 키보드 등과 컴퓨터 간에 데이터 주고 받는 것 관리운영체제 구조GUI: 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태드라이버: 하드웨어를 제어하기 위한 소프트웨어CUI: 그래픽이 아닌 명령어로 처리하는 인터페이스커널 (Kernel)하드웨어와 응용 프로그램 사이에서 자원을 관리하는 역할CPU, 메모리, 디스크, 네트워크, 파일 시스템 등 제어일반 응용 프로그램이 직접 접근 할 수..