컴퓨터공학기초 및 이론(21)
-
소수 찾기 메모
function solution(n) { var answer = 0; let count = 0; let arr = new Array(); //소수가 아닌 것들을 빼면 소수가 됨 //자기자신을 제외한 모든 배수를 n개의 숫자 내에서 확인 //확인된 숫자를 다 0으로 두면 나머지가 소수 //n 까지 숫자를 전부 배열에 일단 넣고 확인하자 for (let i = 2; i
2020.06.28 -
프로세스 구조 Process
Process 구조 > STACK, HEAP, DATA, CODE 로 크게 나뉘어져있다 CODE : 프로그래밍 코드 텍스트가 들어가는 메모리 영역(컴파일 된 결과물) DATA: 변수의 메모리 영역이 저장되는 공간 (코드에서 함수 선언시에 변수가 가리키는 메모리 공간), 전역변수, 초기화 된 데이터 DATA 는 BSS와 DATA로 나뉜다. BSS segment : 초기화 되지 않은 전역변수 DATA segment: 초기 값이 있는 전역변수 STACK: 함수 내 지역변수(재선언 및 재할당이 되는)혹은 인자의 메모리 주소가 위치하는 공간, Return Address값을 STACK에 저장한다. 임시 데이터. (stack frame) 데이터가 STACK에 추가 될수록 STACK의 주소값은 점점 작아진다. HEAP..
2020.02.19 -
인터럽트 (interrupt)
인터럽트란? CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우에 CPU에 알려서 처리하는 기술 가령 선점형 스케쥴러를 구현할 때, 프로세스 running중에 스케쥴러가 이를 중단시키기 위해서는 스케쥴러 코드가 실행되어야함, 이 때 스케쥴러 코드가 실행되어야 한다는 것을 cpu에 알리는 것이 인터럽트의 역할. 또한 IO Device를 이용하면서 프로세스가 blocking 상태였다가 IO 사용이 끝난뒤에 다시 ready 상태로 돌아가야할 때에도 IO Device를 체크하여 CPU에게 알리는 것 또한 인터럽트의 역할 즉, 인터럽트는 예외 상황을 핸들링 하는 것, CPU가 프로그램을 실행하는 도중에 입출력 하드웨어 등의 장치나 또는 예외상황이 발생할..
2020.01.26 -
선점형과 비선점형 스케쥴러
선점형 스케쥴러 (Preemptive Scheduling) :하나의 프로세스가 다른 프로세스 대신에 프로세서를 차지할 수 있음 비선점형 스케쥴러 (Non-preemptive Scheduling) :하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음 선점형과 비선점형의 차이 비선점형은 프로세스가 자발적으로 blocking상태로 들어가거나 실행이 끝났을 때만 다른 프로세스로 교체가 가능하다. 그러나 선점형 프로세스는 running중에도 스케쥴러가 이를 중단시키고 다른 프로세스로 교체가 가능하다. 스케쥴러 알고리즘 중에 FIFO, SJF, Priority-based 등은 어떤 프로세스를 먼저 실행시킬지에 대한 것이며 RoundRobin은 시분할을 위한 기본 알고리즘으로, 시분할은 선점형 ..
2020.01.26 -
프로세스 상태와 스케쥴링
멀티프로그래밍과 Wait 각각 실행시간이 동일한 3개의 프로그램(프로세스)가 있고 Wait를 저장매체로부터 읽기에 소모되는 시간으로 가정하면 위와 같이 효과적인 프로그램사용이 가능. 이는 프로세스 상태를 체크하여 일어나는 것으로, 프로세스는 각각 running state, ready state, block state로 나뉨 위의 wait는 block state고, 위의 시간축에 작업이 예정되어 있는 것은 ready state, 실제 작업이 일어나는 동안의 상태를 running state라고 볼 수 있음. 각각은 구체적으로 세개의 Queue를 통해 작업을 관리할 수 있음. Round Robin 스케쥴러를 생각하면, state를 통한 세개의 큐에서 프로세스의 작업이 시분할 단위로 소요시간을 전부 사용하고 종..
2020.01.11 -
스케쥴링 알고리즘 기본
Process란? - 실행중인 프로그램을 일반적으로 일컬음, task, job 등과 혼용 프로세스: 메모리에 올려져서 실행중인 프로그램 코드 이미지(바이너리): 실행 파일, (ex: ELF format) 응용프로그램 != 프로세스 -> 응용 프로그램은 여러개의 프로세스로 이루어질 수 있다// 하나의 응용 프로그램은 여러 개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수도 있음 프로세스 실행을 관리하는 것 - 스케쥴러 스케쥴링 알고리즘이란? 어느 순서대로 프로세스를 실행시킬까에 대한 결정 -> 시분할 시스템 // 멀티프로그래밍 등과 같은 부분을 적용 FIFO 스케쥴러 - 가장 간단한 스케쥴러 (배치 처리 시스템). 저장매체 IO작업이나 프린팅 작업등 없이 쭉 CPU를 처음부터 끝까지 사용한다. FCF..
2020.01.11