CS/OS
-
[OS]CPU 스케줄링 알고리즘에 대하여CS/OS 2022. 12. 13. 20:03
1. CPU 스케줄링 운영체제의 단기 스케줄러는 스케줄링 알고리즘을 이용해 어떤 프로세스에게 CPU를 할당할 지(디스패치) 결정한다. 프로세스의 실행은 CPU 실행과 I/O 대기의 사이클로 구성된다. CPU 버스트로 시작되어 I/O 버스트가 발생하고 다시 CPU 버스트가 발생, I/O 버스트 발생.. 마지막 CPU 버스트는 또 다른 I/O 버스트가 뒤따르며, 실행을 종료하기 위한 시스템 콜과 함께 끝난다. CPU를 많이 쓰는 프로세스(CPU bound job)와 I/O를 많이 쓰는 프로세스(I/O bound job)가 섞여 있기 때문에 CPU 스케줄링이 필요하다. CPU 스케줄링 알고리즘의 선택 기준은 다음과 같다. CPU 이용률 : CPU가 얼마나 바쁘게 일을 하는가 처리량 : 단위 시간 당 완료된 프..
-
[OS]데드락의 발생과 처리 방법CS/OS 2022. 7. 31. 22:27
1. Deadlock이란? 프로세스들이 서로가 가진 자원을 기다리며 block된 상태이다. 1.1 자원이란? 하드웨어, 소프트웨어를 포함하는 개념 I/O, CPU, Memory, Semaphore 등 2. Deadlock 발생 조건 4가지 조건 모두 만족할 때 deadlock 발생한다. 다시 말해 한 가지 조건을 해제하여 deadlock을 방지한다. 1. Mutual Exclusion, 상호 배제 하나의 프로세스가 자원을 독점적으로 사용 2. No Preemption, 선점 불가 자원을 강제로 빼앗을 수 없음 3. Hold and Wait 일을 수행하기 전까지 현재 가진 자원을 내어 놓지 않음 4. Circular Wait, 환형 대기 자원을 기다리는 프로세스간에 사이클이 형성됨 3. Deadlock 처..
-
[OS]운영체제 기본 개념CS/OS 2022. 7. 28. 17:59
0. 운영체제란? 사용자와 여러 소프트웨어를 하드웨어와 연결하는 소프트웨어 계층 좁은 의미 : 커널; 메모리에 상주하는 부분 넓은 의미 : 각종 시스템 유틸리티를 포함한 개념 1. 운영체제의 목적 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공 편리하게? : 각 사용자/프로그램들이 독자적인 컴퓨터에서 수행되는 것 같은 환경을 제공하기 위해 하드웨어 관련 일을 수행한다. 프로그래머는 하드웨어의 동작에 대하여 몰라도 된다. 자원을 효율적으로 관리 자원? : CPU, 메모리, I/O 효율적? : 형평성 있는 분배, 한정된 자원으로 최대 효율 how? : CPU 스케줄링, 메모리 관리, 디스크 스케줄링, 인터럽트&캐싱 2. 운영체제의 분류 동시 작업 가능 여부 - single-tasking/ multi-ta..
-
[OS]임계 구역 문제와 해결 방안(1) - 하드웨어 지원CS/OS 2022. 7. 27. 17:52
1. 임계 구역 문제 프로세스 동기화는 임계 구역 문제로부터 시작한다. 각 프로세스는 임계 구역이라고 부르는 코드 부분을 포함하고 있다. 임계 구역은 다른 프로세스와 공유하는 데이터에 접근하고 갱신할 수 있는 코드 영역이다. 즉 임계 구역은 경쟁 상태가 발생할 수 있는 곳이다. 임계 구역 문제 해결을 위한 조건 상호 배제(mutual exclusion) : 프로세스가 자신의 임계 구역에서 실행된다면, 다른 프로세스들은 자신의 임계 구역에서 실행될 수 없다. 진행(progress) : 다른 프로세스가 임계 구역에서 실행 중이지 않다면 프로세스는 임계 구역에서 실행될 수 있다. 한정된 대기(bounded waiting) : 프로세스가 자기의 임계 구역에 진입하려는 요청을 한 뒤부터 그 요청이 허용될 때까지 ..
-
[OS]경쟁 상태란?CS/OS 2022. 7. 25. 22:00
0. 들어가기 전에 경쟁 상태 : 여러 프로세스가 공유 자원에 접근할 수 있는 상태 임계 구역 : 경쟁 상태가 발생할 수 있는 코드 영역 동기화 : 임계 구역을 보호하고 이를 통해 경쟁 상태를 방지하는 것 1. 경쟁 상태란? 여러 개의 프로세스가 동일한 자료에 접근하여 조작할 때, 그 실행 결과가 접근이 발생한 특정 순서에 의존하는 상황. 경쟁 상태로부터 보호하기 위해 한 순간에 하나의 프로세스만이 변수를 조작하도록 보장해야 한다. 이를 위해 동기화가 필요하다. 2. 경쟁 상태 발생 케이스 프로세스는 자신의 데이터로 일을 수행한다. 기본적으로 프로세스간에는 메모리를 공유하지 않기 때문에 운영체제를 사용해서 일을 수행하는 경우 경쟁 상태가 발생하게 된다. 2.1 프로세스 A가 커널 모드 수행 중 conte..
-
[운영체제]Operating System Concepts - 공룡책 개념 정리(3)/ProcessCS/OS 2022. 7. 24. 20:59
1. Process Concept 초기의 컴퓨터는 작업(job)을 실행하는 시스템이었다. 이어서 사용자 프로그램(user program) 혹은 태스크(task)를 실행하는 시분할 시스템(time-sharing)이 뒤를 이었다. 1.1 Process 비공식적으로 프로세스란 실행 중인 프로그램이다. 프로세스의 현재 활동 상태는 프로그램 카운터 값과 프로세서 레지스터의 내용으로 표현한다. 프로세스의 메모리 배치는 일반적으로 여러 섹션으로 구분된다. Text section - 실행 코드 (excutable code) Data section - 전역 변수 (global variables) Heap section - 프로그램 실행 중에 동적으로 할당되는 메모리( memory that is dynamically al..
-
[운영체제]Operating System Concepts - 공룡책 개념 정리(2) / Operating System StructuresCS/OS 2022. 7. 15. 12:35
가독성이 떨어지는 것 같아 이번 글부터는 번역이 잘 안되는 부분만 참고하기 위해 영어로 작성하겠습니다. 1. Operating-System Services An operating system provides an environment for the execution of programs. User interface 대부분의 운영체제는 UI를 갖고 있다. 인터페이스는 I/O를 지시하고 메뉴에서 선택하고 텍스트를 입력하는 등의 역할을 하는 시스템이다. 인터페이스는 다양한 형태를 가질 수 있으며 일반적으로 GUI가 사용된다. 키보드와 마우스, 터치스크린을 통해 컴퓨터에 명령을 내린다. 또 다른 인터페이스에는 command-line interface(CLI)가 있다. 사용자가 텍스트를 통해 명령을 내리는 방법이..
-
[운영체제]Operating System Concepts - 공룡책 개념 정리(1)/OverviewCS/OS 2022. 7. 15. 12:29
0. A stored-program computer stored program computer - 폰 노이만이 개발한 memory에 progrmas 저장하는 형태의 컴퓨터 program - set of instructions 1. Operating System is a software that manages a computer’s hardware. provides a basis for application progrmas acts as an intermediary(중개인) between the computer user and the computer hardware 2. What Operating Systems Do coputer system can be devided roughly into four co..