공부방 48

자바 데이터 타입, 변수 그리고 배열 - 백기선 자바라이브스터디

프리미티브 타입 종류와 값의 범위 그리고 기본 값 총 8가지의 기본타입이 있습니다. Type Default Value(기본값) Size(할당크기) Range of values(범위) Integer(정수형) byte 0 1 byte -128~127 short 0 2 byte -32,768 ~ 32,767 int 0 4 byte -2,147,483,648 ~ 2,147,483,647 long 0 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 Floating-point(실수형) float 0.0 4 byte 32-bit IEEE 754 floating-point double 0.0 8 byte 64-bit IEEE 754 floating -poi..

공부방/JAVA 2023.07.22

JVM 내부 구조

다음 다이어그램은 JVM 사양을 준수하는 Java 가상 머신의 주요 내부 구성 요소를 보여줍니다. Class Loader 와 JVM에 의해 할당된 메모리 영역인 Runtime Data Areas는 각각 아래에서 설명하겠습니다. ClassLoader Subsystem Class Loader 서브시스템은 Java 가상 머신 필수 핵심으로, .class 파일을 loading/reading 하고 바이트 코드를 JVM 메서드 영역에 저장하는 데 사용됩니다. 이 서브시스템은 동적 클래스 Loading을 처리하며 다음과 같은 세 가지 주요 기능을 수행합니다. Loading .class 파일을 JVM 메모리로 로드하는 작업을 처리합니다. 메서드 영역에 바이너리 데이터 즉, 정규화된 클래스 이름, 직계 부모,조상 클래스..

공부방/JAVA 2023.07.15

JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가

JVM이란 무엇인가 JVM(Java Virtual Machine)은 자바를 실행하기 위한 가상 컴퓨터(가상머신) 입니다. 자바로 작성된 애플리케이션은 모두 이 JVM에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서는 반드시 JVM이 필요합니다. 컴파일하는 방법 (How to Compile Java Program?) 저희가 작성한 자바 프로그램을 컴파일하려면 먼저 본인 컴퓨터 환경에 JDK(Java 개발 키트)가 설치되어 있어야 합니다. JDK에 대해서는 뒤에서 설명하며 JDK 17를 사용한다는 가정하에 시작하겠습니다(JDK버전 차이는 나중에 다루겠습니다) 우선 저희가 어떤 자바프로그램을 IntelliJ나 Eclipse ide에서 작성했다고 가정합시다. 그리고 작성된 프로그램은 TestProgr..

공부방/JAVA 2023.07.14

파일 시스템 관리 서술형 풀어보기

1. 파일 입출력 시에 1) 응용프로그램, 운영체제, 디스크 장치가 각각 사용하는 주소에 대해 설명하고 주소 변환이 어 디서 이루어지는지 설명하라. 2) 여기서 운영체제는 CHS 물리 주소를 사용하지 않고 논리 블록 주소를 사용함으로써 얻어지는 장점은 무엇인가? 2. fread() 함수의 호출에서 시작하여 파일 블록이 읽혀오는 과정을 단계별로 간단히 나열하면서 설명하라. 3. 파일 시스템 메타 정보와 파일 메타 정보에 대해 1) 세부적으로 어떤 것들이 있는지 나열하라. 2) FAT 파일 시스템과 Unix 파일 시스템에서 이들이 각각 어디에 저장되어 있는지 설명하라. 4. 파일 블록의 크기가 4KB인 32비트 유닉스 파일 시스템에서, 파일의 크기가 5GB인 경우 파일 을 모두 읽으려면 인덱스가 들어 있는 ..

페이징 메모리 서술형 풀어보기

1. 32비트 CPU를 가진 운영체제가 페이징 기법으로 메모리를 관리한다. 페이지의 크기가 8KB이고, 현재 컴퓨터에 1GB의 메모리가 있을 때 다음 질문에 답하라. (1) 논리 주소에서 페이지 번호와 옵셋은 각각 몇 비트인가? (2) 페이지와 프레임 크기는 각각 얼마인가? (3) 물리 메모리에는 몇 개의 프레임이 존재하는가? (4) 사용자 주소 공간의 크기가 2GB일 때, 이 컴퓨터에서 작성할 수 있는 응용프로그램의 크 기는 얼마인지 이유와 함께 말하라. (5) 페이지 테이블의 한 항목 크기가 4바이트라고 할 때, 페이지 테이블의 크기는 얼마인가? 단위와 함께 쓰라. (6) (5)번에 이어서 현재 100개의 프로세스가 실행되고 있다면 시스템 내에 생성된 전체 페이 지 테이블의 크기는 얼마인가? (7) ..

메모리 관리 서술형 풀어보기

1. 메모리 계층 구조에 대해 1) 목적은 무엇인가? 즉 어떤 성능이 향상되는가? 2) 메모리 계층 구조를 형성하는 데 참조의 지역성은 어떻게 활용되었는가? 2. 운영체제는 왜 메모리를 관리하야 하는지 이유를 간단히 설명하라. 3. 논리 주소(가상 주소)와 물리 주소의 정의를 말하고, 물리 주소만 있으면 되지 논리 주소가 왜 필요한가? 4. MMU에 대해 1) 기능은 무엇인가? 2) MMU는 하드웨어인가 소프트웨어인가? 3) 컴퓨터 어느 곳에 존재하는가? 4) MMU가 없는 컴퓨터가 있을 수 있는가? 이유와 함께 논하라. 5. IBM OS/360 MVT는 IBM OS/360/MFT 운영체제의 메모리 관리의 어떤 점을 개선하고자, 어 떻게 한 것인가? 그래서 또한 IBM OS/360 MVT의 메모리 관리에..

교착상태 서술형 풀어보기

1. 식사하는 철학자란? 1) 어떤 문제를 다루기 위한 문제 제기인가? 2) 누가 처음 든 예이며, 이를 공식화한 사람은 누구인가? 3) 제기된 문제의 내용과 해결 방법은 무엇인지 설명하라. 2. 교착상태 1) 교착상태를 정의해보라. 2) 교착상태는 스레드 동기화 문제 중 하나인가? 3. 교착상태가 발생할 필요조건 4가지를 설명하라. 4. 자원할당 그래프 1) 무엇을 위해 만드는가? 2) 여러분이 리눅스 커널을 만드는 회사에 다니고 있다. 그런데 자원할당 그래프를 만들라고 지시받았다고 하자. 어떤 식으로, 어떻게 만들 것인지 나름대로의 방법을 제안해보라. 5. 교착상태를 다루는 방법 4가지를 간단히 기술하라. 그 중에서 가장 많이 사용되는 방법과 그 이유는 무엇인가? 6. 교착상태의 예방책으로 제안된 방..

CPU 스케줄링 서술형 풀어보기

1. CPU 스케줄링 알고리즘들을 평가하는 기준 6가지만 간단히 설명하라. 2. 일반적인 CPU 스케줄링 알고리즘들은 I/O 집중 프로세스를 선호하는가 CPU 집중 프로세 스를 선호하는가?(MLFQ를 보면 알 수 있다). 그 이유는 무엇인가? 여기서 선호라는 뜻은 우선 처리한다는 뜻이다. 3. 스케줄링은 선점, 비선점으로 구분된다. 1) 이를 구분하는 기준은 무엇인가? 2) 현대의 운영체제 대부분은 이들 중 어떤 방식을 취하는가? 3) 비선점 알고리즘을 사용할 때 좋은 점은 무엇이고, 문제점은 무엇이라고 생각되는가? 4. FCFS, RR, SJF, SRTF 중에서 오늘날 범용 컴퓨터인 데스크 톱 컴퓨터에서 가장 많이 사 용되는 것은 어떤 것인지 이유와 함께 설명하라. 5. 커널에 있는 스케줄링 코드가 실..

스레드와 멀티태스킹 서술형 풀어보기

1. ‘프로세스의 스레드의 차이 점이 무엇인지 설명해보라’. 스레드가 왜 프로세스보다 나은 실행 단위인지가 잘 드러나도록 진지하게 설명하라. 2. 스레드의 컨텍스트란 어떤 정보를 말하는가? 그리고 이 정보는 어디에 저장되는가? 3. 스레드의 주소 공간에 대해 1) 스레드의 주소 공간은 어디에 만들어지는가? 2) 하나의 스레드가 실행되기 위해 주어지는 주소 공간은 어떤 영역으로 나뉘는가? 각각에 대 해 간단히 설명하라. 3) 이 중에서 다른 스레드와 공유하지 않고 스레드만 사용하는 공간은 무엇인가? 4. 프로세스 1에 속한 스레드에서 프로세스2가 속한 스레드로 컨텍스트 스위칭이 일어나는 경 우가, 프로세스1에 속한 다른 스레드로 컨텍스트 스위칭되는 경우에 비해 추가적으로 더 필요 한 작업은 무엇인가? 5...

요구사항 보고 ERD작성 및 논리적 스키마 도출 방법

문제 제기 프로젝트를 하면서 경험한 일 입니다. 요구사항에 분명히 기재되어 있는 사실 혹은 요구사항에 반영을 미처 못해 실제 설계 과정에서 누락된다면 추후에 데이터베이스를 구축하여 운용할 때 관리해야 할 사실들을 저장하지 못하는 경우가 발생합니다. 예를들어 회원이 삭제된다면 외래키로 갖고 있던 주문 테이블이 문제가 생기기 때문에 회원을 완전 삭제하는 대신 status 필드명을 추가하여 상태만 변경하는 식으로 문제를 해결해야 합니다. 하지만 저는 이러한 문제가 생길지 예상하지 못하여 회원테이블에 status필드명을 추가하지 않았고 추후에 이 문제를 발견하여 테이블을 나중에 수정을 하게 되었습니다. 규모가 작은 프로젝트에서는 뭐 이러한 문제가 생겨도 그때 그냥 바로바로 테이블을 수정하지 뭐 이런 마인드가 별..