목록2-1/운영체제 (34)
브래의 슬기로운 코딩 생활
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bXPaLD/btr8wPj3mAq/5nKp9A7ANE7ixsQ6zRcC9K/img.png)
교착 및 기아 상태 - 임계 구역 임계 구역 Critical Area - 또는 “임계 영역”이라 함 - 공유 자원에 대하여 프로세스(멀티스레드 포함)들의 동시 접근에 한계가 있는 영역 - 임계 구역을 접근할 때에는 반드시 가용 상태를 확인해야 함 프린터 예시 - 만약 프린터장치가 프로세스들의 동시 접근을 허용하게 된다면, - 프로세스들에 의한 출력 요청 명령 들로 인해 기대 외의 결과물이 나오게 됨 공유 메모리 사용 예시 *result의 값은? 임계 구역 해결 조건 상호 배제(mutual exclusion) 한 프로세스가 임계 구역에 들어가면 다른 프로세스는 그곳에 들어갈 수 없음 한정 대기(bounded waiting) 어떤 프로세스도 무한 대기하지 않아야 함 진행의 융통성(progress flexib..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dF7570/btr8IvKPtBe/aSmi5zxWLzRZtfCKktxfZ0/img.png)
스케줄링 및 IPC - IPC 프로세스 간 통신의 개념 정의 IPC : Inter-Process Communication 프로세스간 데이터를 공유하기 위한 방법 운영체제는 프로세스의 관리 및 각각의 동작을 보호 - 프로세스는 자신의 할당메모리 영역 외에는 접근 불가 - 타프로세스의 영역을 독단적으로 접근할 수 없음 프로세스간 통신을 위해 운영체제는 몇가지 자원을 제공 - 예: 시그널, 인터럽트, 공유 파일, 파이프, 공유메모리, 메시지큐 등 프로세스간 통신(IPC) 프로세스 내부 데이터 통신 - 프로세스 내 스레드간 통신 – 스레드는 전역 변수나 파일을 이용하여 데이터를 공유 프로세스 간 데이터 통신 - 같은 컴퓨터(동일 호스트)에 있는 프로세스간 통신 - 공용 파일 또는 운영체제가 제공하는 자원을 이용..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/k77T7/btr630lgFHb/PB8QQbLE6cky4krsKpt8Vk/img.png)
기타: 에디터 및 컴파일 파일 내용 보기 명령들 명령어: cat [파일명] 지정한 파일의 내용을 화면에 출력 명령어: more [파일명] 지정한 파일의 내용을 화면에 출력 / 화면 단위로 출력(페이지 넘김: 스페이스바키) 명령어: tail [-###] [파일명] 지정한 파일에 대하여 뒤에서 ###(숫자)의 행만큼 출력 명령어: head [-###] [파일명] 지정한 파일에 대하여 앞에서 ###(숫자)의 행만큼 출력 텍스트 파일 에디터 PICO 에디터 - Nano 에디터라고도 함(v4.0부터 명명 nano로 바뀜) - 단순한 형태의 파일 편집 기능을 제공 - 리눅스계열의 다양한 배포판에서 기본 탑재된 프로그램 명령어: pico {파일명} - 저장: [Ctrl + O] - 끝내기: [Ctrl + X] VI ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nvv8U/btr60hIBtgx/omxvUh308sSZbU54mNl0CK/img.png)
스케줄링 및 IPC - 스케줄링 기법 스케줄링 평가 방법 CPU 사용률(%) - 전체 시스템의 동작 시간 중 프로세스들이 CPU를 사용한 비율을 측정 - 높을 수록 운영체제의 성능이 좋음 처리량 - 단위 시간당 작업을 마친 프로세스의 수 - 수치가 클수록 좋은 알고리즘 시간 대기 시간 : 프로세스가 생성된 후 실행되기 전까지 대기하는 시간 - 예: 실행 파일 더블클릭 후 실제 구동시작 시간의 차이 응답 시간 : 첫 작업을 시작한 후 첫 번째 출력(반응, response, feedback)이 나오기까지의 시간 - 예: 실행프로그램 UI 생성된 시간 실행 시간 : 프로세스 작업이 시작된 후 종료되기까지의 시간 - 예: 실행프로그램의 동작시간 반환 시간 : 대기 시간을 포함하여 실행이 종료될 때까지의 시간 -..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cc8JJu/btr60EbXKqY/l063Q0iiLXdWb2WP0kelM1/img.png)
스케줄링 및 IPC - 스케줄링 개요 스케줄링 개요 개념 프로세스들에 대하여 CPU에 할당 기회를 결정하고 수행하는 과정 프로세스가 작업을 처리하기 위해 CPU 할당을 위한 일정을 처리 목적 모든 프로세스들에게 공정하게 배정 - 공평성 단위 시간당 최대한 많이 처리 - 처리율 극대화 - 빠른 응답 - 오버헤드 최소화 - 프로세스 무한대기 최소화 필요성 작업(프로세스)은 주어진 일을 수행하기 위해 다양한 자원(resource)을 사용 - 자원 예: CPU, memory, storage, network, file, I/O etc. - 자원의 특징 : 유한함 CPU는 작업(프로세스) 단위로 처리 작업의 개수가 많아지면 자원들을 선점하기 위한 경쟁이 필요 작업 간의 효율적인 자원의 할당 및 공유를 위한 관리자가..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/S6Vrx/btr5sb4Iqph/I6tTTRmU9Vw2U3aSTwUfz0/img.png)
프로세스 관리 실습환경 구축 가상 머신(Virtual Machine) - 게스트 운영체제의 동작 환경을 제공하는 가상의 하드웨어 환경을 제공 - 실습용 가상 머신 : VirtualBox • 다운로드: https://www.virtualbox.org/ 운영체제 - 리눅스 배포판을 통한 운영체제 기능을 실험 - 실습용 운영체제 : Debian Linux (버전: 11.5) • 데이반 리눅스계열로 각종 해킹 관련 툴들이 포함된 리눅스 배포판 • 다운로드: https://www.debian.org/ 실습을 위한 환경 설정 쉘 변경 • 명령어: chsh 프로세스 상태 제어 실습 실습 준비 가상머신: VirtualBox 운영체제: 데비안 리눅스(Debian Linux) 정지(휴식) 상태 실습 명령어: ps • 프로..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/buBRsi/btr3lDvB05D/kbZgDB4QZAIawPrX8TMrUk/img.png)
프로세스 관리 - 스레드 스레드의 개념 스레드의 정의 CPU 스케줄러가 CPU에 전달하는 일들 중 하나 스레드(thread): 프로세스의 최소 단위 • 하나의 프로세스에는 여러 개의 스레드를 구성할 수 있음 멀티 태스크와 멀티 스레드의 차이 멀티 태스크(Multi-tasks) • 하나의 업무수행을 위해 여러 개의 프로세스들로 구성 시키는 것 • 구현을 위해 프로세스간의 통신기법(IPC: Inter-Process Communication 기술이 필요) 멀티 스레드(Multi-threads) • 하나의 프로세스에 여래 개의 스레드로 구성 시키는 것 • 하나의 프로세스를 공유하기 때문에, 모든 스레드는 전역 메모리 영역 등을 공유함 스레드 제어 블록 TCB(Thread Control Block) - 스레드의 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/crz15S/btr3LskI85B/tv7Rsf7eAMXk8xbkd0bgT1/img.png)
프로세스 관리 - 프로세스의 개요 프로세스의 개념 운영체제의 기능 프로그램(program) 저장장치에 기록되어 있는 정적인 소프트웨어 실행 가능한 소프트웨어 - 컴파일 언어 기반의 소프트웨어일 경우 main() 함수가 반드시 존재하는 소프트웨어 - main() 함수가 없다면, 이는 라이브러리(library) 등으로 분류 프로세스(process) - 메모리에 로드(load)되어 주기적으로 CPU에 의해 처리되는 소프트웨어 - 주기적으로 CPU를 점유 - 프로세스 제어 블록(PCB: Process Control Block 또는 Process Status Block 자료구조) 할당 - 동음어: 태스크(task), 잡(job) 프로세서(processor) - 명령을 실행(처리)하는 하드웨어 - 예: CPU(Ce..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nFiWS/btr21BW8CHj/WGoXQgJUAQM49GfNura1pK/img.png)
컴퓨터 시스템 구조 - 병렬 처리 병렬 처리의 개념 병렬 처리(Parallel Processing) 동시에 여러 개의 명령을 처리하여 작업의 능률을 올리는 방식 볶음밥 조리 예: 볶음밥 조리의 병렬 처리 파이프라인 기법 하나의 코어에 여러 개의 스레드(Thread)를 이용하는 방식 슈퍼스칼라 기법 멀티코어 CPU를 이용해 여러 개(코어 개수)의 작업을 동시에 처리 하는 방식 병렬 처리 시 고려 사항 상호 의존성이 없어야 병렬 처리가 가능 각 명령이 서로 독립적이고 앞의 결과가 뒤의 명령에 영향을 미치지 않아야 함 각 단계별 처리 시간이 동일해야 함 - 오랜 시간이 걸리는 작업이 발생하면, 이 때문에 전체 작업이 밀림 - 단계별 시간의 차이가 크면 병렬 처리의 효과가 떨어짐 전체 작업 시간을 몇 단계로 나..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cLAGIV/btr2PSzhvlB/kINMOiy3n2Y0cTt8HHqmG0/img.png)
컴퓨터 시스템 구조 - 메모리 및 성능향상 기법 메모리의 종류 메모리의 종류 휘발성 메모리 DRAM(Dynamic RAM) • 저장된 0과 1의 데이터가 일정 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 함 SRAM(Static RAM) • 전력이 공급되는 동안에는 데이터를 보관할 수 있어 재생할 필요가 없음 SDRAM(Synchronous Dynamic Random Access Memory) • 클록틱(펄스)이 발생할 때마다 데이터를 저장하는 동기식 DRAM 비휘발성 메모리 플래시 메모리(Flash Memory) • SD 카드, USB 드라이브같이 전력이 없어도 데이터를 보관할 수 있는 저장장치 • SSD(Solid State Drive) – 빠른 데이터 접근 속도, 저전력, 내구성이 HDD..