[OS] CPU 스케쥴링
·
CS
CPU 스케쥴링OS가 프로세스에게 CPU 자원을 배분하는 것ex) 입출력 집중 프로세스의 우선순위가 CPU 집중 프로세스보다 높다"스케쥴링 큐"를 통해 우선순위를 지정할 수 있다.이런 스케쥴링 큐는 준비 큐와 대기 큐로 이뤄져 있다.- 준비 큐(Ready Queue): CPU 이용을 위해 대기 중인 프로세스들- 대기 큐(Wating Queue): 입출력 장치 이용을 위해 대기 중인 프로세스들 선점형과 비선점형 스케쥴링1. 선점형 스케쥴링(Preemptive Scheduling)하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식ex) 라운드 로빈, SRT, 다단계 큐, 다단계 피드백 큐- 비교적 응답이 빠르다는 장점이 ..
[OS] Thread
·
CS
Thread(쓰레드)쓰레드는 프로세스를 구성하는 실행 흐름의 단위하나의 프로세스는 하나 이상의 쓰레드를 가질 수 있다. 실행 흐름이 여러 개라면?실행 흐름이 여러 개인 프로세스(멀티 스레드 프로세스)는 프로세스를 이루는 여러 명령어를 동시에 실행이 가능하다.예를 들어- 한 쓰레드는 웹 페이지를 렌더링- 다른 쓰레드는 파일을 다운로드- 또 다른 쓰레드는 사용자 입력을 처리 쓰레드의 구성요소쓰레드는 독립적으로 실행되기 위해 최소한의 정보를 가지고 있다.쓰레드 ID: 쓰레드를 식별하는 고유 번호프로그램 카운터(PC): 다음에 실행할 명령어의 주소레지스터 값: 쓰레드의 현재 작업 상태스택: 함수 호출과 지역 변수를 저장하는 공간쓰레드마다 각각의 스택 영역과 프로그램 카운터를 가져 각자 실행이 가능해진다.이때 프..
[OS] 프로세스 상태와 계층 구조
·
CS
프로세스 상태생성 상태, 준비 상태, 실행 상태, 대기 상태, 종료 상태 1. 생성 상태이제 막 메모리에 적재되어 PCB를 할당 받은 상태준비 완료 되면 준비 상태가 된다. 2. 준비 상태당장이라도 CPU를 할당받아 실행할 수 있지만, 자신의 차례가 아니라 기다리는 상태자신의 차례가 되면 실행 상태가 된다.- `준비 -> 실행` 상태로 바뀌는 것 = `디스패치` 라고도 함 3. 실행 상태CPU를 할당받아 실행 중인 상태- 할당된 시간 모두 사용 시, 타이머 인터럽트가 발생해 준비 상태로 이동한다.- 실행 도중 입출력 장치를 사용하면, 입출력 작업이 끝날 때까지 대기 상태가 된다. 4. 대기 상태(block state)프로세스가 실행도중 입출력 장치를 사용하는 경우. 입출력 작업이 느려 이 경우 대기 상태..
[OS] 프로세스
·
CS
프로세스(Process)실행 중인 프로그램을 뜻한다.실행 되기 전 프로그램은 그저 보조 기억 장치 속 데이터 덩어리일 뿐 1) 포그라운드 프로세스사용자가 볼 수 있는 공간에서 실행되는 프로세스 2) 백그라운드 프로세스사용자가 볼 수 없는 공간에서 실행되는 프로세스 백그라운드 프로세스는 2가지 종류로 나눌 수 있다.i) 사용자가 직접 상호작용 가능한 백그라운드 프로세스ii) 사용자와 상호작용 하지 않고 그저 정해진 일만 수행하는 프로세스 ex) 데몬(daemon), 서비스 등 PCB(프로세스 제어 블록)프로세스 관련 정보를 저장하는 곳- 프로세스 생성 시 커널 영역에 함께 생상되었다가 종료 시 폐기된다. 모든 프로세스 실행을 위해서는 CPU가 필요하지만, 자원은 한정되어 있다.그래서 프로세스들이 돌아가며..
[OS] 운영체제란
·
CS
자원이란?프로그램 실행에 있어 마땅히 필요한 요소들. 컴퓨터 4가지 핵심 부품 포함 운영체제란?실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 프로그램=> 메모리 커널영역에 적재되어 실행ex) CPU 관리, 메모리 적재, 입출력 장치 제공 개발자는 왜 OS를 알아야 할까?내가 만드는 프로그램이 OS의 어떤 도움을 받는 지, 어떻게 OS의 도움을 받는 지 알아야 하기 때문이다. ex) 오류 메세지 OS의 핵심적 서비스 1. 자원에 접근 및 조작2. 프로그램이 올바르고 안전하게 실행 이런 핵심 서비스는 Kernel에서 담당한다. UI(User Interface)커널에는 포함이 안되지만 운영체제에는 포함이 된다. 사용자와 컴퓨터 간의 통로사용자가 직접 실행하는 프로그램은 프로그..
디자인 패턴1 - 싱글톤, 팩토리, 전략 패턴
·
CS
디자인 패턴">디자인 패턴프로그램을 설계할 때 발생했던 문제점들을 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것 1. 싱글톤 패턴(singleton pattern)">1. 싱글톤 패턴(singleton pattern)하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 ex) 데이터베이스 연결 모듈 장점1) 하나의 인스턴스를 다른 모듈들이 공유하므로, 인스턴스 생성 비용이 줄어든다. 단점1) 의존성이 높아진다.2) 단위 테스트(TDD)는 테스트가 서로 독립적이고 어떤 순서로든 실행 가능해야하는데 방해가 된다. 해결 방법의존성 주입(DI)을 통해 모듈 간의 결합을 느슨하게 만든다. 메인 모듈이 직접 다른 하위 모듈에 대한 의존성을 주는 것이 아닌 중간에 의존성 주입자(injector)를 통해 메..
01-2. 컴퓨터 구조
·
CS
컴퓨터가 이해하는 정보 중 가장 작은 단위 = 비트(bit)N비트가 나타낼 수 있는 정보 = \(2^N\) 개바이트(byte)는 8 bit를 묶은 단위로, 1byte로 표현할 수 있는 정보는 \( 2^8 = 256\)개이다. CPU가 한번에 처리할 수 있는 데이터의 크기 = 워드(ward)ex) CPU가 한 번에 16bit를 처리할 수 있다면 1워드 = 16bit 0과 1로 숫자 표현하기">0과 1로 숫자 표현하기2진수로 소수를 나타내는 법 = 부동 소수점 현재는 2진수의 지수와 가수를 IEEE 754 방식으로 저장하고 있음지수와 가수만 알면 소수를 알 수 있음ex) 1.1010111010101 x 2^6 의 수 = 11010111010101컴퓨터가 지수를 저장할 때, bias 값이 더해져 저장된다...
01. 컴퓨터 구조
·
CS
컴퓨터의 핵심 부품CPU, 메모리(주기억장치), 캐시 메모리, 보조 기억 장치, 입출력 장치 CPU데이터와 명령어를 읽고 해석하고 실행하는 부품 CPU 내부 구조 산술논리연산장치(ALU)와 제어장치, 레지스터 ALU : CPU가 처리할 명령어를 실질적으로 연산하는 장치제어장치(CU) : 명령어를 해석해 부품을 작동시키는 제어 신호라는 전기 신호를 내보내는 장치.레지스터 : CPU 내부의 작은 임시 저장장치. 데이터와 명령어를 처리하는 과정의 중간값을 저장. 메모리와 캐시 메모리메인 메모리(RAM, ROM) : 현재 실행중인 프로그램을 구성하는 데이터와 명령어를 저장하는 부품 RAM과 ROM이있다.RAM은 휘발성 저장장치휘발성 : 전원이 공급되지 않을 때, 저장하고 있는 정보가 지워지는 특성 캐시 메모리..