목록운영체제 (32)
브래의 슬기로운 코딩 생활
교착 및 기아 상태 - 임계 구역 임계 구역 Critical Area - 또는 “임계 영역”이라 함 - 공유 자원에 대하여 프로세스(멀티스레드 포함)들의 동시 접근에 한계가 있는 영역 - 임계 구역을 접근할 때에는 반드시 가용 상태를 확인해야 함 프린터 예시 - 만약 프린터장치가 프로세스들의 동시 접근을 허용하게 된다면, - 프로세스들에 의한 출력 요청 명령 들로 인해 기대 외의 결과물이 나오게 됨 공유 메모리 사용 예시 *result의 값은? 임계 구역 해결 조건 상호 배제(mutual exclusion) 한 프로세스가 임계 구역에 들어가면 다른 프로세스는 그곳에 들어갈 수 없음 한정 대기(bounded waiting) 어떤 프로세스도 무한 대기하지 않아야 함 진행의 융통성(progress flexib..
스케줄링 및 IPC - IPC 프로세스 간 통신의 개념 정의 IPC : Inter-Process Communication 프로세스간 데이터를 공유하기 위한 방법 운영체제는 프로세스의 관리 및 각각의 동작을 보호 - 프로세스는 자신의 할당메모리 영역 외에는 접근 불가 - 타프로세스의 영역을 독단적으로 접근할 수 없음 프로세스간 통신을 위해 운영체제는 몇가지 자원을 제공 - 예: 시그널, 인터럽트, 공유 파일, 파이프, 공유메모리, 메시지큐 등 프로세스간 통신(IPC) 프로세스 내부 데이터 통신 - 프로세스 내 스레드간 통신 – 스레드는 전역 변수나 파일을 이용하여 데이터를 공유 프로세스 간 데이터 통신 - 같은 컴퓨터(동일 호스트)에 있는 프로세스간 통신 - 공용 파일 또는 운영체제가 제공하는 자원을 이용..
스케줄링 및 IPC - 스케줄링 기법 스케줄링 평가 방법 CPU 사용률(%) - 전체 시스템의 동작 시간 중 프로세스들이 CPU를 사용한 비율을 측정 - 높을 수록 운영체제의 성능이 좋음 처리량 - 단위 시간당 작업을 마친 프로세스의 수 - 수치가 클수록 좋은 알고리즘 시간 대기 시간 : 프로세스가 생성된 후 실행되기 전까지 대기하는 시간 - 예: 실행 파일 더블클릭 후 실제 구동시작 시간의 차이 응답 시간 : 첫 작업을 시작한 후 첫 번째 출력(반응, response, feedback)이 나오기까지의 시간 - 예: 실행프로그램 UI 생성된 시간 실행 시간 : 프로세스 작업이 시작된 후 종료되기까지의 시간 - 예: 실행프로그램의 동작시간 반환 시간 : 대기 시간을 포함하여 실행이 종료될 때까지의 시간 -..
스케줄링 및 IPC - 스케줄링 개요 스케줄링 개요 개념 프로세스들에 대하여 CPU에 할당 기회를 결정하고 수행하는 과정 프로세스가 작업을 처리하기 위해 CPU 할당을 위한 일정을 처리 목적 모든 프로세스들에게 공정하게 배정 - 공평성 단위 시간당 최대한 많이 처리 - 처리율 극대화 - 빠른 응답 - 오버헤드 최소화 - 프로세스 무한대기 최소화 필요성 작업(프로세스)은 주어진 일을 수행하기 위해 다양한 자원(resource)을 사용 - 자원 예: CPU, memory, storage, network, file, I/O etc. - 자원의 특징 : 유한함 CPU는 작업(프로세스) 단위로 처리 작업의 개수가 많아지면 자원들을 선점하기 위한 경쟁이 필요 작업 간의 효율적인 자원의 할당 및 공유를 위한 관리자가..
프로세스 관리 실습환경 구축 가상 머신(Virtual Machine) - 게스트 운영체제의 동작 환경을 제공하는 가상의 하드웨어 환경을 제공 - 실습용 가상 머신 : VirtualBox • 다운로드: https://www.virtualbox.org/ 운영체제 - 리눅스 배포판을 통한 운영체제 기능을 실험 - 실습용 운영체제 : Debian Linux (버전: 11.5) • 데이반 리눅스계열로 각종 해킹 관련 툴들이 포함된 리눅스 배포판 • 다운로드: https://www.debian.org/ 실습을 위한 환경 설정 쉘 변경 • 명령어: chsh 프로세스 상태 제어 실습 실습 준비 가상머신: VirtualBox 운영체제: 데비안 리눅스(Debian Linux) 정지(휴식) 상태 실습 명령어: ps • 프로..
프로세스 관리 - 스레드 스레드의 개념 스레드의 정의 CPU 스케줄러가 CPU에 전달하는 일들 중 하나 스레드(thread): 프로세스의 최소 단위 • 하나의 프로세스에는 여러 개의 스레드를 구성할 수 있음 멀티 태스크와 멀티 스레드의 차이 멀티 태스크(Multi-tasks) • 하나의 업무수행을 위해 여러 개의 프로세스들로 구성 시키는 것 • 구현을 위해 프로세스간의 통신기법(IPC: Inter-Process Communication 기술이 필요) 멀티 스레드(Multi-threads) • 하나의 프로세스에 여래 개의 스레드로 구성 시키는 것 • 하나의 프로세스를 공유하기 때문에, 모든 스레드는 전역 메모리 영역 등을 공유함 스레드 제어 블록 TCB(Thread Control Block) - 스레드의 ..
프로세스 관리 - 프로세스의 개요 프로세스의 개념 운영체제의 기능 프로그램(program) 저장장치에 기록되어 있는 정적인 소프트웨어 실행 가능한 소프트웨어 - 컴파일 언어 기반의 소프트웨어일 경우 main() 함수가 반드시 존재하는 소프트웨어 - main() 함수가 없다면, 이는 라이브러리(library) 등으로 분류 프로세스(process) - 메모리에 로드(load)되어 주기적으로 CPU에 의해 처리되는 소프트웨어 - 주기적으로 CPU를 점유 - 프로세스 제어 블록(PCB: Process Control Block 또는 Process Status Block 자료구조) 할당 - 동음어: 태스크(task), 잡(job) 프로세서(processor) - 명령을 실행(처리)하는 하드웨어 - 예: CPU(Ce..
컴퓨터 시스템 구조 - 메모리 및 성능향상 기법 메모리의 종류 메모리의 종류 휘발성 메모리 DRAM(Dynamic RAM) • 저장된 0과 1의 데이터가 일정 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 함 SRAM(Static RAM) • 전력이 공급되는 동안에는 데이터를 보관할 수 있어 재생할 필요가 없음 SDRAM(Synchronous Dynamic Random Access Memory) • 클록틱(펄스)이 발생할 때마다 데이터를 저장하는 동기식 DRAM 비휘발성 메모리 플래시 메모리(Flash Memory) • SD 카드, USB 드라이브같이 전력이 없어도 데이터를 보관할 수 있는 저장장치 • SSD(Solid State Drive) – 빠른 데이터 접근 속도, 저전력, 내구성이 HDD..
컴퓨터 시스템 구조 - 기본 구성 하드웨어의 구성 컴퓨터의 구성 필수 장치 • 컴퓨팅(연산 및 처리)를 위한 필수 장치들 • 중앙처리장치(CPU), 주 메모리(대부분의 작업이 이루어 짐) 주변장치 • 사용자와 대화를 위한 장치 및 데이터 저장을 위한 장치들 • 입력장치, 출력장치, 저장장치 용어 - 중앙처리장치 = CPU, 주 프로세서(Main Processor) - 주 메모리 = 메인 메모리(Main Memory) 또는 메모리 - 보조저장장치 = 저장장치 또는 데이터 스토리지 CPU와 주 메모리 CPU(Central Process Unit) • 명령어를 해석하여 실행하는 장치 • 각종 연산을 수행 주 메모리(Main Memory) • 작업에 필요한 프로그램과 데이터를 저장하는 장소 • 데이터의 접근 단..
운영체제 개요 - 운영체제 구조와 종류 커널과 인터페이스 커널(Kernel) - 운영체제의 핵심(Core) - 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 필수 기능을 모아놓은 것 인터페이스(IF: Interface) - 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할 - GUI(Graphical User Interface) : 그래픽을 기반한 사용자 인터페이스 - CLI(Command Line Interface) : 텍스트기반의 사용자 인터페이스 (TUI와 다름) 시스템 호출 시스템 호출 - System Call - 컴퓨터의 자원을 이용하기 위해 사용자 인터페이스 또는 응용프로그램이 커널에게 접근하기 위한 수단 - 컴퓨터자원의 효율적인 보호 - 표준화된 접근 직접..