본문 바로가기

학교 공부/시스템12

[운영체제] 병행성 제어와 교착상태 병행성(Concurrency)이란? : 두 개 이상의 프로세스들이 동시에 존재하고, 병렬적으로 실행될 수 있는 상태를 말한다. 병행성 제어(Concurrency Control)란? : 두 개 이상의 프로세스들이 처리될 수 있는 병행 프로세스는 문제점을 가지고 있다. 컴퓨터는 한정된 자원(CPU, 메모리, 디스크 등)을 사용해야 하므로 프로세스가 여러 개가 동시에 작업되는 경우에는 충돌이 일어날 수 있는데, 이것을 해결하기 위해 상호 배제 기법, 임계 영역, 동기화 기법 등을 통해 병행성을 제어할 수 있다. ① 상호배제(Mutual Exclusion Techniques) : 한 프로세스가 공유 메모리 혹은 파일을 사용하고 있을 때, 다른 프로세스들이 공유 자원을 사용하지 못하도록 배제시키는 제어 기법이다... 2020. 3. 6.
[운영체제] CPU 스케줄링 알고리즘 ■CPU 스케줄링 알고리즘■ ① FCFS(First Come First Service) : 가장 간단한 CPU 스케줄링 알고리즘으로, 대기 큐에 도착한 순서에 따라 CPU를 할당한다. 또한 비선점 스케줄링 기법이다. ② SJF(Short Job First) : SJF 스케줄링은 장기 스케줄링에서 자주 사용되는 알고리즘이며, 수행 시간이 가장 짧다고 판단되는 프로세스부터 먼저 CPU를 할당한다. FCFS보다 평균 대기 시간을 짧은 것에 비해, 큰 작업에 대해서는 FCFS 보다 대기 시간 예측이 어렵다. 비선점 스케줄링 기법이다. ③ 라운드 로빈 스케줄링(Round Robin Scheduling) : RR 스케줄링은 CPU 시간이 만료될 때까지 처리를 완료하지 못할 경우, CPU는 준비 큐에 있던 다음 프로.. 2020. 3. 5.
[운영체제] CPU 스케줄링이란? CPU 스케줄링(CPU Scheduling)이란? : 컴퓨터 자원을 효율적으로 관리하기 위해 프로세스들 사이에서 CPU 할당을 위한 우선순위를 관리하는 일 □역할에 의한 구분□ 1) 장기 스케줄러(Long-Term) - 실행할 작업을 준비 큐에서 꺼내 메인 메모리에 적재함. >> 작업 스케줄링, 상위 스케줄링으로도 불림 - 메인 메모리에 적재된 프로세스의 양을 판단하여 조절함. >> 멀티 프로그래밍의 정도를 결정 - Admit(생성->준비), Release(실행-> 종료) 일 때 관리. 메모리와 디스크 사이의 스케줄링을 담당 2) 중기 스케줄러(Mid-Term) - 어떤 프로세스들이 CPU를 할당받을 것인지 결정함. - CPU 사용에 대한 프로세스들을 중재하여 일시 보류&재활성화함. >> 교체(swapp.. 2020. 3. 3.
[운영체제] 프로세스란? (+ 문맥전환이란?) 프로세스란? 프로세스(process)란 실행 중인 프로그램을 의미한다. 고로 레지스터, 스택, 포인터, 실행 중인 프로그램, 데이터 등으로 구성된 집합체이다. 프로세스 내부에는 최소 하나의 스레드(thread)를 가지고 있다. 조금 이해하기 어려울 수 있지만, 하드디스크에 프로그램을 실행하면, 실행을 위한 메모리 할당이 이루어지고, 할당된 메모리 공간으로 바이너리 코드가 올라가게 되는데 이것을 "프로세스"라고 부른다. 스레드란? 스레드(thread)란 프로세스 내부의 작업의 흐름, 단위를 의미하는 것으로, 프로세스에서 실행의 개념만을 분리한 개념이다. 스레드가 여러개 존재하는 것을 멀티스레드(multithread)라고 하는데, 멀티스레드에서 각 스레드끼리는 프로세스의 일정 메모리 영역을 공유한다. ■프로.. 2020. 3. 3.
[운영체제] 운영체제란? 운영체제란? 운영체제(Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램들의 모임이다. 컴퓨터 사용자와 하드웨어 간의 인터페이스로서 동작하여 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해주며, 대표적으로 유닉스, 리눅스, 윈도우가 있다. 운영체제의 목적 1. 처리 능력 향상 : 자원 처리량, 자원 처리 시간을 증진. 2. 신뢰성 : 주어진 기능을 정확히 수행. 3. 응답시간 단축 : 시스템에 작업을 의뢰한 반응 시간을 단축. 4. 자원 활용률 향상 : 자원을 효율적으로 활용. 5. 가용성 향상 : 고장과 오류의 영향을 최소화시킴. 운영체제의 기능 (자원) 1. 프로세스 관리.. 2020. 3. 3.
[System] 메모리 구조 운영체제로부터 프로그램을 실행할 메모리 공간(RAM)을 할당받는다. 이 메모리 내부 공간은 코드 영역, 데이터 영역, 힙 영역, 스택 영역, 커널 영역으로 나뉘어있다. 1) 코드 영역 : 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 불림 - 상수 저장 - 컴파일된 기계어 - CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리 - 프로그램이 시작하고 끝날 때까지 메모리에 남아있음 2) 데이터 영역 : 전역변수와 정적 변수가 저장되는 영역 - 프로그램이 시작하고 끝날 때까지 메모리에 남아있음 (전역변수의 특징 중 프로그램 시작과 종료까지 존재하는 이유이다.) 3) 힙 영역 : 사용자에 의해 메모리 공간이 동적 할당과 해제가 이루어짐 - 사용자가 직접 해야 하는 역영.. 2019. 11. 1.