본문 바로가기

<개인공부>/[Operating System]6

[운영체제] Banker's algorithm(은행원 알고리즘) 구현 - Deadlock 안녕하세요 BlockDMask 입니다.2017/11/24 - [/[Operating System]] - [운영체제] Deadlock(교착상태)에 대해서지난시간에 이어서 이번시간에는 Deadlock(교착상태)를 회피하거나 탐지할 때 사용할 수 있는 은행원 알고리즘(Banker's algorithm)을 구현해보겠습니다.문제는 공룡책 8th 7.10번 문제입니다.**직접 구현한 것이라,, 많이 부족할 수 있습니다. 보완이 필요한 부분은 댓글로 달아주시면 감사하겠습니다. 1. 구현할 내용현재 시스템의 상태를 아래와 같이 정의 하겠습니다. 프로세스가 안전한지(deadlock 이 발생하지 않는지) 확인할 수 있고 프로세스가 어떤 순서로 자원을 할당 받는지 볼 수 있도록 구현하겠습니다. Allocation Max A.. 2017. 11. 24.
[운영체제] Deadlock(교착상태)에 대해서 안녕하세요. BlockDMask 입니다.오늘은 deadlock 에 대해서 알아볼까 합니다.deadlock 이 무엇인지, deadlock을 처리하는 전체적인 그림에 대해서 보겠습니다.뭐가 뭔지 전체적으로 그림이 잡히지 않아서 그려보았습니다.1. deadlock 이란.?deadlock(교착상태)란 둘 이상의 Process가 서로가 가진 Resource를 요구하면서 각자의 Resource를 놓지 않아서 더이상 작업수행을 할 수 없이 무한하게 대기 상태로 놓인 상태를 말합니다. 멀티프로세스나 멀티스레드 환경에서 여러 프로세스들이 한정된 자원을 사용하기 때문에 발생할 수 있습니다. deadlock은 4가지 필요조건이 성립할때 발생할 수 있습니다. 시스템이 deadlock 상태가 되지 않도록 보장하기 위하여 dea.. 2017. 11. 24.
[운영체제] 유저모드와 커널모드에 대해서. 안녕하세요, BlockDMask입니다.오늘은 운영체제의 유저모드와 커널모드에 대해서 알아보도록 하겠습니다.글로 먼저 설명을 하고, 그림을 통해서 설명하겠습니다.제가 학교에서 수강했던 Unix system programming 수업과 OS 수업에서 배운 내용을 정리했습니다.혹시 내용에 이상한 점이 있으면 댓글로 지적해주시면 감사하겠습니다.1. 커널이란?2. 디바이스 드라이버란?3. 유저모드와 커널모드란.4. 유저모드와 커널모드의 전환.5. 전체적인 흐름. 1. 커널이란? 위키피디아 에서 정의하길 "컴퓨터 과학에서 커널(Kernel)은 운영체제의 핵심 부분으로서, 운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러가시 서비스를 제공한다." 라고 정의 되어있습니다. 제가 말하고 싶은 것은, "운영체제.. 2017. 7. 19.
[운영체제] 스케줄링 알고리즘 안녕하세요 BlockDMask 입니다.오늘은, 운영체제에서 프로세스의 스케줄링에 대해 알아보겠습니다. 1) 스케줄링(Scheduling)이란.실행중인 모든 프로세스들에게 골고루 CPU를 할당하는일. 멀티 프로세스를 지원하는 운영체제의 스케줄러가 담당한다. 스케줄러는 일정한 기준(스케줄링 알고리즘)에 의거하여 스케줄링을 한다.2) 선점형 운영체제, 비선점형 운영체제 (Preemptive OS, non-preemptive OS)Preemptive OS - 현재 실행중인 프로세스A보다 높은 우선순위를 가진 프로세스B가 등장하면 스케줄러에 의해 실행 순서가 조절된다. - 우선순위가 높은놈이 오면 현재 running 상태에 있는 프로세스A가 ready상태로 밀려가고 프로세스 B가 running 상태로 CPU를 할.. 2017. 7. 8.
[운영체제] 프로세스란? (스케줄링, 메모리구조, 상태변화) 1. 프로세스(process)란?프로세스(process)란 실행중에 있는 프로그램(Program)을 의미한다. 스케줄링의 대상이 되는 작업(task)과 같은 의미로 쓰인다. 프로세스 내부에는 최소 하나의 스레드(thread)를 가지고있는데, 실제로는 스레드(thread)단위로 스케줄링을 한다. 하드디스크에 있는 프로그램을 실행하면, 실행을 위해서 메모리 할당이 이루어지고, 할당된 메모리 공간으로 바이너리 코드가 올라가게 된다. 이 순간부터 프로세스라 불린다. 2. 프로세스(process)의 메모리 구조 (프로세스 하나당 하나씩 존재한다.) + 손으로 그린.... 메모리 구조.. (똥손입니다.)Code 영역 : 프로그램을 실행시키는 실행 파일 내의 명령어들이 올라갑니다. (쉽게 말하면 소스코드가 올라간다고.. 2017. 7. 7.
[운영체제] OS의 정의와 컴퓨터 구조 0. 운영체제(OS)의 정의 - 운영체제, Operating System이라 한다. - 하드웨어와 응용 프로그램 사이에서 관리?중재역할? 를 해주는 시스템 소프트웨어이다. - 하는일 : 자원관리. - 세부적으로 아는것만 말하자면 : 입출력 관리, 메모리할당, 스케줄링, 장치 드라이버 관리 등. - 컴퓨터 구성에서 OS의 위치 : 하드웨어 OS 셸(bash..) / 응용 프로그램 사용자 - 종류 : Linux, Unix, Window OS, MAC OSX 1. 컴퓨터 시스템의 Main Components - CPU Cache Main Memory Hard Disk - CPU와 Cache 메모리는 Computer Architecture 부분에서 다루고 - Main Memory와 Hard Disk는 Opera.. 2017. 7. 6.