전체 글 118

프로세스 상태, CPU 스케줄러

프로세스 상태 running state : 현재 cpu에서 실행 상태 ready state : cpu에서 실행 가능한 상태(실행 대기 상태) block state : 특정 이벤트 발생 대기 상태( ex : 프린팅 완료) 스케줄러란 스케줄러는 레디 큐에 존재하는 프로세스들을 특정한 우선순위 기반으로 CPU를 할당받게 해주는 역할을 함 링크드 리스트, 해쉬 리스트, 비트 맵, 레드 블랙 트리(리눅스)로 구현 스케줄링 목적 처리량 최대화 - 스케줄링 규칙은 단위 시간당 가능하면 많은 프로세스가 서비스를 받을 수 있도록 해야 함 자원 활용도 최대화 - 시스템 자원을 부지런히 사용 해야 함 무기한 연기 회피 - 프로세스들이 서비스를 받으려고 한 없이 대기하면 안됨 우선순위 강화 - 시스템이 프로세스에 우선순위를 ..

동기 비동기(프로세스 동기화)

동기(synchronous : 동시에 일어나는) - 동기는 말 그대로 동시에 일어난다는 뜻입니다. 요청과 그 결과가 동시에 일어난다는 약속인데요. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 합니다. -> 요청과 결과가 한 자리에서 동시에 일어남 -> A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞추겠다. 동기방식의 예(A가 B에게 10,000원을 송금) 1. A의 계좌는 10,000원을 뺄 생각을 하고 있다. 2. A의 계좌가 B의 계좌에 10,000원을 송금한다. 3. B의 계좌는 10,000원을 받았다는 걸 인지하고, A의 계좌에 10,000원을 받았다고 전송한다. 4. A, B 계좌 각 각 차감과 증가가 동시에 발생하였다. 순서를 보시면 A의..

프로세스(PROCESS) , 스레드(THREAD) #2

단일 스레드 - 하나의 프로세스에서 하나의 스레드 실행 - 하나의 레지스터와 스택으로 표현 멀티 스레드 - 프로그램을 다수의 실행 단위로 나누어 실행 - 프로세스 내에서 자원을 공유하여 자원생성과 관리의 중복을 최소화 - 서버가 많은 요청을 효율적으로 수행할 수 있는 환경을 제공 - 각각의 스레드가 고유의 레지스터와 스택으로 표현됨 단일 스레드와 멀티스레드의 장단점 단일 스레드의 장점 1) 자원 접근에 대한 동기화를 신경쓰지 않아도 된다. 여러 개의 스레드가 공유된 자원을 사용할 경우 각 스레드가 원하는 결과를 얻게 하려면 공용 자원에 대한 접근이 통제되어야 하며 이 작업은 프로그래머에게 많은 노력을 요구하고 비용을 발생시킨다. 단일 스레드 모델에서는 이러한 작업이 필요하지 않다. 2) 문맥 교환(con..

프로세스(PROCESS),스레드(THEREAD)

프로세스란? 1.운영체제로 부터 자원을 할당받는 행위 2.동적인 개념으로 실행된 프로그램을 의미 쓰레드 1.프로세스내에서 실행되는 여러 흐름의 단위 2.프로세스의 특정한 수행 경로 프로세스 안에도 독자적인 구조로 나눠져있습니다. 1. Code 영역 코드 영역으로 기계어로 제어되는 메모리 영역입니다. 2. Data 영역 주로 전역변수가 저장되고, Static 변수도 저장되는 영역입니다. 3. Stack 영역 지역 변수가 저장되며 함수의 매개변수 ( 함수 호출시 전달되는 인자값) 들이 저장되는 영역입니다. 4. Heap 영역 동적할당을 위해 사용되는 공간입니다. 프로세스 제어 블록(PCB) 1. 프로세스는 생성될떄마다 PCB를 생성한다. 2.이전의 작업을 수행하고 싶으면 PCB에 저장된 내용을 가지고와 이전..

백준 11727번 2N타일

3번째 스터디는 백준 11727번 2N타일입니다. https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. www.acmicpc.net 1.코드 2.설명 문제는 1을 입력하면 1, 2를 입력하면 3, 3을 입력하면 5가 나오는 점화식 문제입니다. 결국 사각형의 경우의 수를 다 구하는 공식이므로 3 이상부터는 그 전전단계 두번 더하고 그 전단계를 한번 더해서 값을 만드는 피보나치 수열과 비슷한 공식으로 이루어져있습니다. 코드에 보시면 결국 입력이 1,2 면 1 하고 3이라는 답을 바로 출력하지만 3이상부터는 반복문을 돌려서 값을 계속 더해줍니다.

백준 문제 2020.01.05

백준 10845 큐

스터디 2번째 문제는 큐입니다. https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 1. 코드 2. 설명 큐도 스택처럼 구성만 알면 간단합니다 큐는 Last in-First out에 형태로 이루어 져 있습니다.. 문제에서 스택처럼 첫쨰 줄에 명령의 수를 입력후 각 입력후 push를 통해 값을 저장 각 명령으로 출력을 해보는 문제입니다. 앞서 스택처럼 조건문을 이용하여 풀었으며 스택에 top되신 f..

백준 문제 2020.01.03

백준 10828 스택

처음으로 시작한 스터디 문제 1번은 백준 10828 문제입니다. https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 1. 코드 2. 설명 스택에 제일 기초적인 문제로 스택에 특징인(First in - Last out)만 알면 바로 풀수 있는 문제였습니다. 문제에서 첫쨰 줄에 주어지는 명령의 수를 임의로 입력하여 각 입력 연산자를 사용하여 스택을 채워가는 문제입니다. 예를들어 push 1을 하면 ..

백준 문제 2020.01.03