JAVA/Theory 썸네일형 리스트형 CPU Scheduling [Priority & Round Robin] 비선점형 스케줄링(Non-preemptive Scheduling) : - 프린트 - 어떤 프로세스가 CPU를 할당 받으면 그 프로세스가 종료되거나 입출력 요구가 발생하여 자발적으로 중지될 때까지 계속 실행되도록 보장한다. - 순서대로 처리되는 공정성이 있고 다음에 처리해야 할 프로세스와 관계없이 응답 시간을 예상할 수 있으며 선점 방식보다 스케줄러 호출 빈도 낮고 문맥 교환에 의한 오버헤드가 적다. - 일괄 처리 시스템에 적합하며, CPU 사용 시간이 긴 하나의 프로세스가 CPU 사용 시간이 짧은 여러 프로세스를 오랫동안 대기시킬 수 있으므로, 처리율이 떨어질 수 있다는 단점이 있다. 선점형 스케줄링(Preemptive Scheduling) : - 보통의 OS - 어떤 프로세스가 CPU를 할당받아 실행 .. 더보기 Context Switch 중요함!나중에 한번 더 다루기 더보기 CPU Scheduling [Dispatcher & Time Slice] CPU Scheduling 시분할이라는 것은 CPU의 실행시간을 100이라 보았을 때10으로 10개를 나누어서 10개의 쓰레드를 차례대로 교환하면서 실행하는 것을 말한다. 현재 사용하는 대부분의 운영체제는 32bit 운영체제이고 따라서 4GB의 어드레싱 영역을 얻을 수가 있다. 각각의 4G 영역을 2G씩 나누어서 상위 2G에는 시스템 코드, DLL, 프로세스 간 공유되는 데이터와 코드가 위치하고, 하위 2G에는 프로그램을 실행하는 프로세스, 응용 프로그램의 바이너리 이미지(실행파일), 응용 프로그램 공유 라이브러리(DLL)의 코드와 데이터가 위치한다 Dispatcher(H/W 인터럽트)란 CPU의 제어권을 STS(Short-Term Scheduling)에 의하여 선택된 Process에게 넘겨주는 모듈을 .. 더보기 Process 와 Thread Process( 프로세스 ): 프로세스는 프로그램이 메인 메모리에 적재된 상태로 실행되는 작업의 단위이다.생성(create) : 프로세스가 생성되는 중이다.준비(ready) : 프로세스가 CPU를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태로, CPU가 할당되기를 기다리고 있다. 일반적으로 준비 상태의 프로세스 중 우선순위가 높은 프로세스가 CPU를 할당받는다.실행(running) : 프로세스가 CPU를 차지하여 명령어들이 실행되고 있다.대기(waiting) : 보류(block)라고 부르기도 한다. 프로세스가 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태를 말한다.종료(terminated) : 프로세스의 실행이 종료되었다. Thread( 스레드 ) - 실타래: 스레드(thread.. 더보기 JDK (JRE [API + JVM] + 개발 유틸리티 ) JDK의 구성 ( JRE + 기타 Tools )Java Runtime Environment ( 자바로 만들 프로그램을 실행하는 환경이 필요하다. 자바의 OS )SUN Microsystems에서 개발한 자바(JAVA)환경에서 돌아가는 프로그램을 개발하는 데 필요한 툴들을 모아놓은 소프트웨어 패키지이다. JRE(JAVA Runtime Environment)와 자바 바이트코드 컴파일러로 이루어져 있다 JRE? ( JVM + API)Java Virtual Machine ->자바 인터프리터!!Abstract Programming Interface-> 미리 만들어놓은 코드 자바 컴파일 과정! JVM의 메모리 구조! API자바 API는 자바를 사용하여 쉽게 구현할 수 있도록 한 클래스 라이브러리의 집합이다. 즉, 자.. 더보기 컴파일 & 인터프리트 컴파일 방식의 프로그램 와 자바 프로그램의 차이 1. 컴파일 방식 Preprocess(전처리): 소스파일 내부에 있는 전처리 명령을 수행하는 과정입니다. 전처리 명령은 소스파일 내부에 ‘#’으로 시작되는 명령어들이며 이명령어들은 Preprocessor(전처리기)가 이 명령어들을수행하게 됩니다. 전처리 명령어는 주로 소스파일을 컴파일 하기 전에 어떤형태로 컴파일 할지 결정하거나, 소스코드의 가동성을 높이는 등의 역할을 수행하게 됩니다. Compile(컴파일): 소스파일을 컴파일러를 이용해 기계어로 번역하는 과정입니다. 번역하는 과정에서 C언어문법에 맞지 않거나 표준을 따르지 않으면, 컴파일 에러나 경고를 발생시킵니다. 아무런 문제 없이 과정을 마치게 되면 기계어로 번역된 ‘*.obj’파일을생성합니다. Li.. 더보기 이전 1 다음