본문 바로가기

반응형

전체 글

(35)
선점형 SJF 스케줄링 (SRTF: Shortest-Remaining Time First) 개념 선점형 스케줄링: SRTF는 SJF(Shortest-Job-First) 스케줄링의 선점형 버전으로, 짧은 잔여 시간을 우선적으로 처리한다. 작업 선택 기준: 현재 실행 중인 프로세스의 남은 CPU 버스트 시간과 새로 도착한 프로세스의 CPU 버스트 시간을 비교하여, 새로운 프로세스의 CPU 버스트가 더 짧은 경우 즉시 현재 프로세스를 중단하고 새 프로세스에 CPU를 할당한다. 작동 방식 CPU 버스트 비교: 새로 도착한 프로세스의 CPU 버스트가 현재 실행 중인 프로세스의 남은 CPU 버스트보다 짧을 때, 현재 프로세스는 실행을 중지하고 준비 상태로 돌아간다. CPU 할당: 새로운 프로세스는 즉시 실행 상태로 전환되어 CPU를 사용한다. 특징 효율적인 응답 시간: 이 방식은 특히 짧은 작업에 대해 ..
SJF 스케줄링 (Shortest-Job-First Scheduling) SJF 스케줄링 동작 방식 준비 큐에 있는 프로세스 중에서 실행 시간이 가장 짧은 작업부터 CPU를 할당하는 비선점형 방식. 최단 작업 우선 스케줄링이라고도 하며, 콘보이 효과를 완화하여 시스템의 효율성을 높이는 데 도움을 준다. 특징 비선점형 방식 CPU를 가장 작은 CPU 버스트를 가진 프로세스에게 할당한다. 같은 CPU 버스트를 가진 경우, FCFS(First Come First Serve) 방식을 따른다. 평균 대기 시간이 최소화 된다. 문제점 각 프로세스의 CPU 버스트 길이를 예측하기 어렵다. SJF 스케줄링의 효과 및 한계 효과 짧은 작업 우선: 짧은 작업을 긴 작업의 앞에 배치함으로써 긴 작업의 대기 시간은 증가하나, 짧은 작업의 대기 시간을 크게 줄일 수 있다. 평균 대기 시간 감소: 전..
오픈소스SW 개요 오픈소스 소프트웨어의 정의오픈소스 소프트웨어(OSS)는 저작권자가 소스 코드를 공개하여 누구나 자유롭게 사용, 수정, 재배포할 수 있는 자유로운 소프트웨어(Free and Open Source Software, FOSS)를 의미한다.오픈소스SW는 공개 SW와 동일한 의미공개SW에도 저작권이 존재하며 라이선스의 의무사항을 지켜야 함FOSS(Free and Open Source Software) : 자유SW와 오픈소스SW가 결합된 단어로 국내에서는 공개SW로 통칭자유SW와 공개SW의 차이자유 소프트웨어(Free Software)는 소스 코드의 자유로운 수정과 사용 권리를 강조하는 반면, 공개 소프트웨어(Open Source Software)는 소스 코드의 접근성과 개방성에 중점을 두고, ..
CPU 스케줄링 CPU 스케줄링의 정의 CPU 스케줄링은 운영 체제가 프로세스들 사이에서 CPU 자원을 어떻게 할당할지 결정하는 프로세스 관리 기법이다. CPU 스케줄러 여러 프로세스의 상황을 고려하여 CPU와 시스템 자원의 배정을 결정 고수준 스케줄링 시스템 내의 전체 작업 수를 조절한다. 어떤 작업을 시스템이 받아들일지 또는 거부할지 결정한다. 시스템 내에서 동시에 실행 가능한 프로세스의 총 개수가 정해진다. 장기 스케줄링, 작업 스케줄링, 승인 스케줄링이라고도 함. 장기(long_term or job) 스케쥴러(scheduler) 프로세스를 디스크에서 메모리로 적재한다. loads the process image from the disk to memory 적재기(“loader”)와 메모리관리 모듈과 연관성이 있다...
프로세스의 구조와 fork() 시스템 호출의 개념 프로세스의 구조 코드 영역 프로그램의 본문이 기술된 곳으로, 프로그래머가 작성한 코드가 탑재된다. 탑재된 코드는 읽기 전용으로 처리되어 변경할 수 없다. 데이터 영역 코드가 실행되면서 사용하는 변수나 파일 등의 각종 데이터를 모아놓은 곳이다. 데이터는 변하는 값이기 때문에 이곳의 내용은 기본적으로 읽기와 쓰기가 가능하다. 스택 영역 운영체제가 프로세스를 실행하기 위해 부수적으로 필요한 데이터를 모아놓은 곳이다. 프로세스 내에서 함수를 호출하면 해당 함수를 수행하고 원래 프로그램으로 되돌아올 위치를 이 영역에 저장한다. 이 영역은 사용자에게는 보이지 않으며 운영체제에 의해 관리된다. fork() 시스템 호출 개념 실행 중인 프로세스로부터 새로운 프로세스를 복사하는 함수다. 실행 중인 프로세스와 똑같은 프로..
컴퓨터 시스템의 인터럽트 처리 매커니즘 인터럽트와 폴링의 개념적 차이 폴링 (Polling) 폴링은 CPU가 주기적으로 입출력 장치의 상태를 검사하는 방식이다. CPU는 능동적으로 데이터가 준비되었는지 확인하기 위해 장치를 체크한다. 이 방법은 데이터가 없음에도 불구하고 상태를 확인해야 하기 때문에, CPU의 리소스가 지속적으로 사용되어 효율성이 낮아질 수 있다. 인터럽트 (Interrupt) 인터럽트는 입출력 장치나 다른 하드웨어로부터의 신호에 의해 CPU가 현재 처리 중인 작업을 일시 중단하고, 발생한 이벤트를 처리한 후 원래 작업으로 복귀하는 방식이다. 이벤트 발생 시에만 CPU가 작업을 중단하므로, 불필요한 리소스 사용을 줄이며 시스템의 효율성을 높일 수 있다. ISR (Interrupt Service Routine) ISR은 인터럽트..
문맥 교환 (Context Switching) 문맥 교환의 정의 운영체제가 실행하던 프로세스의 상태를 저장하고, 새로운 프로세스의 상태로 복귀하여 새로운 프로세스가 실행할 수 있게 하는 기술 프로세스의 상태 저장: 실행 상태에서 대기 상태로 전환되는 프로세스의 현재 상태(레지스터 정보, 프로그램 카운터, 시스템 호출 상태, 메모리 관리 정보 등)를 그 프로세스의 제어 블록(PCB)에 저장한다. CPU 재설정: 대기 상태에서 실행 상태로 들어오는 새로운 프로세스의 PCB에서 저장된 상태 정보를 읽어 CPU의 레지스터와 기타 제어 레지스터를 재설정한다. 이 과정을 통해 운영 체제는 여러 프로세스가 CPU 자원을 공유하면서도 각 프로세스가 독립적으로 실행되는 것처럼 관리할 수 있다. 문맥교환은 특히 다중 프로세싱 환경에서 중요하며, 프로세스 간의 공정한 ..
깃 명령어 Git 명령어 정리 작업 영역 시작 clone: 저장소를 새 디렉토리에 복제한다. init: 새 Git 저장소를 생성하거나 기존 저장소를 재초기화한다. 현재 변경 작업 add: 파일 내용을 인덱스에 추가한다. mv: 파일, 디렉토리, 심볼릭 링크를 이동하거나 이름을 변경한다. restore: 작업 트리 파일을 복원한다. rm: 작업 트리와 인덱스에서 파일을 제거한다. 히스토리 및 상태 검토 bisect: 이진 탐색을 사용해 버그를 도입한 커밋을 찾는다. diff: 커밋 간의 변경사항, 커밋과 작업 트리 간의 차이를 보여준다. grep: 패턴과 일치하는 라인을 출력한다. log: 커밋 로그를 보여준다. show: 다양한 타입의 객체를 보여준다. status: 작업 트리 상태를 보여준다. blame: 파일의..

반응형