분류 전체보기 (48) 썸네일형 리스트형 예외처리(Exception) 예외처리는 프로그램 실행 중 발생할 오류를 개발자가 미리 대처하는 코드다. 오류(Error)는 프로그램 실행 과정에서 시스템적으로 비정상적인 상황을 의미하며 크게 컴파일 과정에서 발생하는 Complie Error, 실행 중 발생하는 Runtime Error 로 나뉘며 예외처리는 이 중에서도 예측 가능한 Runtime Error 를 잡는 행위이다. Java 에서는 예외처리 구문은 다음과 같은 구조로 이루어져있다. 1. 일반적인 try-catch try { }catch (Exception e) { } 2. 다중 try-catch try { }catch (NullPointerException e1) { }catch (ArrayIndexOutOfBoundsException e2) { } 3. 중복 try-cat.. Java 문법 정리 변수(Variable) - 하나의 값을 저장하기 위한 메모리 공간 a. 숫자로 시작할 수 없음 b. _ 와 & 외 특수 문자는 사용할 수 없다. c. Java 키워드는 사용할 수 없다. d. 초기화를 하지 않아도 더미 값이 들어간다. (실제 들어가는 값 = Literal) 자료형(Data Type) a. 기본형 (1byte = 8bit = 2^8) - boolean - 정수형: int, short, long (4byte, 2byte, 8byte) - 실수형: float, double (4byte, 8byte) - char (2byte) b. 참조형 - Class - Interface - Array - etc 형변환(Type Conversion) - 기본 자료형 간 변형 a. 묵시 형변환 (자동) - 변환.. Java 실행, 동작 그리고 JVM, JRE, JDK, JIT JVM(Java Virtual Machine) 은 컴파일된 Java 코드를 실행하는 인터프리터이다. 최초 작성된 Java 코드는 .java 파일로 저장된다. 하지만 컴퓨터는 인간의 자연어로 작성된 Java 코드를 실행할 수 없다. 그래서 Java Compiler 는 .java 파일을 컴파일러를 0과 1로 구성된 기계어 어셈블리어로 변환한다. 이렇게 변환된 .java 파일은 Java Byte Code 가 되어 .class 파일로 변환된다. 하지만 기존의 절차 지향 언어였던 C 의 경우 Complier 가 변환한 어셈블리 코드를 CPU 가 수행하는 방식이지만, Java 의 경우에는 이렇게 바뀐 .class 파일을 JVM 이 실행한다. 이렇게 컴파일러가 변환한 어셈블리 코드를 해석하여 수행하는 SW 를 인터프.. 디스크 관리 이번에는 CPU, 메모리에 이어 디스크 관리에 대해 알아보려한다. 디스크는 보조기억장치로 메모리의 휘발성, 공간제약성을 보조하기 위한 기억장치이며 구성요소는 다음과 같다. 1. Sector, Block 메모리와 비슷하게 디스크도 메모리가 바라보는 논리 주소, 실제 데이터가 저장되는 물리 주소를 가지고 있다. 여기서 기본 논리 단위를 Block, 물리 저장 단위를 Sector(Header + Data + Trailer) 라고 한다. 2. Formatting Physical Formatting : Disk Sector Initialize Logical Formatting : File System (FAT, Inode, Free Space) : Initialize 3. Partion 1개의 논리적 디스크를 의.. 파일 시스템 그동안 운영체제를 공부하며 메모리의 주소를 통해 데이터에 접근하는 HW 적인 방식에 대해 알아보았다. 이번 시간에는 우리가 GUI 를 통해 요청하면 OS 에서 파일의 정보를 가져오는 파일 시스템에 대해 알아보려고 한다. File 이란 '이름' 을 통해 데이터에 접근하는 단위로 OS 에서 파일은 단순한 저장 용도가 아닌 작업 수행을 위한 데이터의 논리적 단위이기도 하다. File System 은 이러한 파일들을 관리하는 체계로 모든 파일들을 파일의 Meta Data 인 File Attribute(Name, Created Time, Permission, Directory, Type, Size etc) 로 관리하며 다음과 같은 연산들을 활용한다. 1. Open/Close 2. Read/Write 3. Crea.. 메모리 관리 - 가상 메모리 이번 시간에는 메모리 관리 간 OS 가 관리하는 가상 메모리 관리에 대해 알아보자. 메모리 관리의 목표는 응용 프로그램의 프로세스의 요구 데이터들을 보다 효율적으로 메모리에 올려 사용하는 것이었다. 그리고 현재에는 순서에 따지지 않고 가용 가능한 빈 공간에 데이터를 넣을 수 있는 Paging 과 프로세스 간 쉽게 데이터를 공유할 수 있는 Segmentation 을 같이 사용한다. 그렇지만 위의 방법은 메모리 물리 주소 관리 중점이며 이는 OS 영역이 아닌 HW 영역이다. 그래서 오늘은 OS 영역인 가상 메모리 관리 방식을 알아보려고 한다. 가상 메모리는 실제 물리 메모리의 물리 주소를 가르키는 논리 주소가 저장되는 공간으로 이 논리 주소가 Page(Segment 는 Page 의 윗 단계) 이고 Page .. 메모리 관리 - Segmentation 메모리 관리 기법 중 하나인 Segmentation 은 불연속 고정 할당 방식인 Paging 과 다르게 데이터에 따라 공간을 할당하는 불연속 가변 할당 방식이다. 기본적인 원리는 Paging 과 비슷하게 논리 주소가 바인딩 된 Table 을 활용해 메모리 인덱싱을 통해 메모리의 물리 주소를 찾는 방식이다. Segmentation 의 Segment 는 프로그램의 함수, 프로세스의 Code, Data, Stack 등으로 구성해 기능별로 나눠 관리가 가능하다. 따라서 모든 Page 에 Bit 를 추가해 관리하는 방식의 Paging 보다 Protection(Public/Private), Sharing(Process Shared Memory) 면에서는 훨씬 효율적이지만 가변 할당 시 문제점인 외부 단편화(기존의 .. 메모리 관리 - Paging 메모리는 프로세스의 데이터를 보다 효율적으로 관리하기 위해서 다양한 메모리 관리 기법을 활용하며 그중에서도 가상 메모리 기법을 가장 많이 사용한다. 가상 메모리는 물리 주소를 연속적으로 저장하는 연속 할당과 순서에 상관 없이 비어있는 공간에 할당하는 불연속 할당이 있으며 이번 시간에는 불연속 할당 기법 중 Paging 에 대해 알아보려고 한다. Paging 은 간단하게 메모리를 Page 라는 단위로 나누어 데이터를 관리하는 방식으로 CPU 가 바라보는 프로세스의 논리주소, 실제 메모리에 저장되는 물리주소(Page 와 매핑되는 공간 = Frame) 그리고 논리주소와 물리주소를 매핑한 Page Table 로 나눠진다. 하지만 Page Table 은 프로세스마다 독립적으로 필요하며 마찬가지로 메모리에 저장되기.. 이전 1 2 3 4 ··· 6 다음