Computer Science
-
JVM 이해하기Computer Science/JAVA 2021. 1. 12. 16:30
JVM 이해하기 JVM(Java Virtual Machine) 자바 바이트 코드를 OS에 특화된 코드로 변환시켜서 실행합니다. 플랫폼에 종속적입니다 JRE(Java Virtual Machine) 자바 애플리케이션을 실행할 수 있도록 구성하는 배포판입니다 JVM과 핵심 라이브러리 및 자바 런타임 환경에서 사용하는 프로퍼티 세팅이나 리소스 파일을 가지고 있습니다 개발 관련 도구는 포함하지 않습니다 JDK(Java Development Kit) JRE + 개발 관련 도구 소스 코드를 작성할 때 사용하는 자바 언어는 플랫폼에 종속되지 않습니다 JAVA 프로그래밍 언어 JDK에 들어있는 자바 컴파일러(Javac)를 사용하여 바이트코드(.class파일)로 컴파일 할 수 있음. JVM 구조 클래스 로더 시스템 .cl..
-
동기화 도구들Computer Science/Operating System 2021. 1. 10. 23:56
질문 6.1 배경 경쟁 상황이란 무엇인가? 동시에 여러 개의 프로세스가 동일한 자료를 접근하여 조작하고, 그 실행 결과가 접근이 발생한 특정 순서에 의존하는 상황을 경쟁 상황이라고 합니다. 6.2 임계 구역 문제 임계 구역이란 무엇인가요? 적어도 하나 이상의 다른 프로세스가 공유하는 데이터에 접근하고 갱신하는 구역 임계 구역 문제를 해결하기 위한 해결책의 3가지 요구 조건은 무엇인가요? 상호 배제 진행 한정된 대기 6.5 Mutex Locks 뮤텍스 락의 동작 원리는? acquire() 함수가 락을 획득하고, release() 함수가 락을 반환합니다. Mutex 락은 available이라고 불리는 불린 변수를 가지는데 이 변수 값이 락의 가용 여부를 표시합니다. 락이 가용하면 acquire() 호출은 성..
-
CPU 스케줄링Computer Science/Operating System 2021. 1. 10. 00:38
질문 5.1 기본 개념 CPU 스케줄러가 하는 역할은 무엇인가요? CPU가 유휴 상태가 될 때마다, 운영체제는 준 비 큐에 잇는 프로세스 중에서 하나를 선택해 실행해야 합니다. 이러한 선택 절차를 수행하는 역할을 합니다. 선점 스케줄링과 비선점 스케줄링의 차이는 무엇인가요? 비선점 스케줄링에서는 CPU가 한 프로세스에 할당되면 프로세스가 종료하든지, 또는 대기 상태로 전환해 CPU를 방출할 때까지 점유합니다. 선점 스케줄링에서는 CPU가 어떤 프로세스가 종료되기 전 다른 프로세스에 할당할 수 있습니다. 디스패처란 무엇인가요? 디스패처란 CPU 코어의 제어를 CPU 스케줄러가 선택한 프로세스에 주는 모듈이며, 문맥 교환, 사용자 모드 전환 등의 역할을 수행합니다. 5.2 스케줄링 기준 CPU 스케줄링 알고..
-
스레드와 병행성Computer Science/Operating System 2021. 1. 10. 00:08
질문 4.1 개요 스레드는 어떻게 구성되어 있는가? 스레드 id, 프로그램 카운터, 레지스터 집합, 스택으로 구성됨 단일 스레드 프로세스와 다중 스레드 프로세스의 차이? 다중 스레드 프로세스는 동시에 하나 이상의 작업을 수행할 수 있음 다중 스레드 프로그래밍의 장점은 무엇이 있는가? 응답성 : 동시에 많은 일을 처리할 수 있기 때문에 다른 작업을 하면서도 사용자의 요청에 응답할 수 있다. 자원 공유 : 프로세스는 공유 메모리와 메시지 전달 기법을 통해야만 자원을 공유할 수 있음. 반면에 스레드는 자신이 속한 프로세스의 자원들과 메모리를 공유할 수 있다. 경제성 : 스레드 생성은 프로세스 생성보다 시간과 메모리를 덜 소비한다 규모 적응성 : 병렬 수행이 가능하기 때문에 빠르다 4.2 다중 코어 프로그래밍 ..
-
프로세스Computer Science/Operating System 2021. 1. 10. 00:07
질문 1. 프로세스 개념 프로세스 메모리 배치 섹션은 어떻게 되어있는가? 텍스트 섹션 : 실행 코드 데이터 섹션 : 전역 변수 힙 섹션 : 프로그램 실행 중에 동적으로 할당되는 메모리 스택 섹션 : 함수를 호출할 때 임시 데이터 저장장소(함수 매개변수, 지역변수 등) 프로세스와 프로그램의 차이? 프로그램은 명령어 리스트를 내용으로 가진 디스크에 저장된 파일과 같은 수동적인 존재이다. 이와는 대조적으로 프로세스는 다음에 실행할 명령어를 지정하는 프로그램 카운터와 관련 자원의 집합을 가진 능동적인 존재이다. 프로그램이 메모리에 적재되면 프로세스가 된다 프로세스 상태는 어떤 것이 있는가? new : 프로세스가 생성 중 running : 명령어들이 실행되고 있음 waiting : 프로세스가 어떤 이벤트가 일어나..
-
Java 인스턴스 비교Computer Science/JAVA 2020. 12. 21. 22:33
코드 import java.util.HashSet; public class Test { public static void main(String[] args) { HashSet set = new HashSet(); set.add(new Person("David", 10)); set.add(new Person("David", 10)); System.out.println(set); } } class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } public String toString() { return name + " : " + age; } }결과 위의 코드에서 이름과 나이가 같으..