운영체제

· 🛠️ OS
동기화 기법 중 뮤텍스 락, 세마포, 모니터에 대하여 알아봅니다. 1. 뮤텍스 락 상호 배제를 위한 동기화 도구(자물쇠 역할), 뮤텍스 락 뮤텍스 락의 단순한 형태: 전역 변수 하나, 함수 두 개 자물쇠 역할: 프로세스들이 공유하는 전역 변수 lock 임계 구역을 잠그는 역할: acquire 함수 임계 구역의 잠금을 해제하는 역할: release 함수 acquire 함수 프로세스가 임계 구역에 진입하기 전에 호출 임계 구역이 잠겨 있다면 >> 임계 구역이 열릴 때까지(lock이 false가 될 때까지) 임계 구역을 반복적으로 확인 임계 구역이 열려 있다면 >> 임계 구역을 잠그기(lock을 true로 바꾸기) release 함수 임계 구역에서의 작업이 끝나고 호출 현재 잠긴 임계 구역을 열기(lock을 ..
· 🛠️ OS
동시다발적으로 실행되는 프로세스들은 서로 협력하며 영향을 주고 받는다 이 과정에서 자원의 일관성을 보장해야 한다. → 프로세스들의 동기화를 고려해야 한다 1. 프로세스 동기화의 의미 프로세스들의 수행 시기를 맞추는 것 크게 두가지를 의미함 실행 순서 제어를 위한 동기화: 프로세스를 올바른 순서대로 실행하기 상호 배제를 위한 동기화: 동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하게 하기 (실행의 문맥을 갖는 모든 대상은 동기화 대상이기에 스레드도 동기화 대상입니다) 공동의 목적을 위해 동시에 수행되는 프로세스 ex) 워드 프로세서 프로그램 맞춤법 검사 프로세스 입력 내용을 화면에 출력하는 프로세스 Q. 이런 프로세스들이 아무렇게나 마구 실행되도 괜찮을까? A. No. 올바른 수행을 위해 프로세스..
· 🛠️ OS
CPU 스케줄링 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것 프로세스 우선순위 가장 공정한 CPU 스케줄링은 어떻게 하는 걸까? CPU를 사용하고 싶어하는 프로세스들이 차례로 돌아가며? NO. 빨리 처리해야하는 프로세스가 있기 때문(= 프로세스마다 우선순위가 다르기 때문) 예시로 입출력 작업이 많은 프로세스(=입출력 집중 프로세스)의 우선순위는 CPU작업이 많은 프로세스(=CPU 집중 프로세스)의 우선순위보다 높다 우선순위는 프로세스의 PCB에 저장됨 스케줄링 큐 모든 프로세스의 PCB를 뒤적거려 프로세스의 순서를 정하는 것 비효율적임 → 따라서 스케줄링 큐를 이용 자원이용하고 싶은 프로세스들을 큐에 삽입(줄을 서게 함) 스케줄링에서의 큐는 반드시 선입선출 방식일 필요는 없음 ..
· 🛠️ OS
스레드 프로세스를 구성하는 실행 흐름의 단위 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다 스레드 종류 단일 스레드 프로세스 실행 흐름이 하나인 프로세스 멀티 스레드 프로세스 실행 흐름이 여러 개인 프로세스 → 프로세스를 이루는 여러 명령어 동시 실행 가능 스레드의 구성 요소 스레드 ID, 프로그램 카운터를 비롯한 레지스터 값, 스택 등 실행에 필요한 최소한의 정보 모든 스레드는 프로세스의 자원을 공유하면서 실행됨 멀티 프로세스와 멀티 스레드 동일한 작업을 수행하는 단일 스레드 프로세스 여러 개 실행: 멀티 프로세스 하나의 프로세스를 여러 스레드로 실행: 멀티 스레드 멀티 프로세스의 경우 프로세스를 fork하면 코드/데이터/힙 영역 등 모든 자원이 복제되어 저장됨 저장된 메모리 주소를 제외하면 모..
· 🛠️ OS
1. 프로세스 상태 생성 상태 이제 막 메모리에 적재되어 PCB를 할당 받은 상태 준비가 완료되었다면 준비 상태로 준비 상태 당장이라도 CPU를 할당 받아 실행할 수 있지만 자신의 차례가 아니기에 기다리는 상태 자신의 차례가 된다면 실행 상태로(= 디스패치) 실행 상태 CPU를 할당 받아 실행 중인 상태 할당된 시간 모두 사용 시(타이머 인터럽트 발생 시) 준비 상태로 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때까지 대기 상태로 대기 상태 프로세스가 실행 도중 입출력장치를 사용하는 경우 입출력 작업은 CPU에 비해 느리기때문에 이 경우 대기 상태로 접어듬 입출력 작업이 끝나면 (입출력 완료 인터럽트를 받으면) 준비 상태로 종료 상태 프로세스가 종료된 상태 PCB, 프로세스의 메모리 영역 정리 ..
· 🛠️ OS
1. 프로세스 실행중인 프로그램 프로그램은 실행되기 전까지는 보조기억장치에 있는 데이터 덩어리일 뿐임 2. 프로세스 종류 포그라운드 프로세스 사용자가 볼 수 있는 공간에서 실행되는 프로세스 메모장, 웹브라우저, 게임 등 백그라운드 프로세스 사용자가 볼 수 없는 공간에서 실행되는 프로세스 사용자와 직접 상호작용이 가능한 백그라운드 프로세스 사용자와 상호작용하지 않고 그저 정해진 일만 수행하는 프로세스(데몬, 서비스) 3. 프로세스 제어 블록 모든 프로세스는 실행을 위해 CPU가 필요하다 하지만 CPU 자원은 한정되어 있다 프로세스들은 돌아가며 한정된 시간 만큼만 CPU를 이용 자신의 차례에 정해진 시간만큼 CPU 이용 타이머 인터럽트가 발생하면 차례 양보 빠르게 번갈아 수행되는 프로세스들을 관리해야함 이를..
· 🛠️ OS
1. 커널이란 운영체제의 심장,운영체제의 핵심 기능을 담당합니다. 윈도우, 안드로이드,iOS, 리눅스, macOS와 같이 다양한 종류의 운영체제가 있으며, 운영체제가 제공하는 기능은 다양하다. 하지만 공통적인 가장 핵심적인 서비스가 존재한다. 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능 … 이러한 운영체제의 핵심 서비스를 담당하는 부분을 커널(kernel)이라고 한다. 운영체제에는 속하는데 커널에는 속하지 않는 기능? 대표적으로 유저 인터페이스(UI)가 있음. 사용자와 컴퓨터간의 통로일 뿐 운영체제의 핵심 기능은 아님 2. 이중모드와 시스템 호출 일반적인 응용프로그램이 자원에 직접 접근하는 것이 위험하기 때문에 일반적으로 자원에 직접 접근할 수 없습니다. 따라서 운영체..
· 🛠️ OS
1. 운영체제란 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램 커널 영역에 적재되어서 실행되는 프로그램 응용 프로그램: 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램 2. 운영체제의 역할 메모리 관리 CPU 관리 CPU는 보통 여러 프로그램을 빠르게 돌아가면서 동시에 실행을 하게 되는데, 그 때 누가 먼저 실행될지, 나중에 실행될지, 누가 오래동안 CPU를 점유할지 결정하게 됨. 입출력 장치 관리 보조기억장치 관리 파일, 폴더 관련 정리하자면, 운영체제는 정부가 인력, 토지, 예산을 관리하는 것처럼 운영체제가 컴퓨터의 자원(CPU, 메모리, 하드 디스크 등)을 관리해줌 『혼자 공부하는 컴퓨터 구조+운영체제』 강의 내용을 기반으로 작성된 글입니다
JINiOS
'운영체제' 태그의 글 목록 (2 Page)