본문 바로가기

분류 전체보기

(67)
02. 운영체제 동작 구조적 원리 현재 OS는 Time sharing, Multi Programming I/O I/O Operation I/O 디바이스와 CPU는 병행적으로 작동 가능 물리적 디바이스와 컨트롤러 버퍼 사이 데이터 전달 각 디바이스는 로컬 버퍼와 레지스터를 가지고 잇음 디바이스 컨트롤러를 위한 디바이스 드라이버가 필요 → 컨트롤러에게 필요한 명령어를 제공해주는 모듈 Accessing I/O Devices Memory Mapped I/O → 더 자주 쓰임 주소를 이용해 접근 I/O 디바이스가 CPU 메모리와 똑같이 동작 일반적인 load, store 동작 → 사용하는 명령어 인터페이스가 같음 Special(isolated) I/O Channel I/O라고도 부름 → 특수한 명령어가 필요하다 CPU가 I/O 디바이스를 위한 별..
01. 운영체제 개요 운영체제란 컴퓨터 시스템의 자원들을 효율적으로 관리하며, (Resource Management) → 디스크 자원 관리 및 분배 (Efficiency & Fairness) 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 소프트웨어(Virtual Machine) → 사용자를 위해서만 존재하는 것처럼 느끼게 해주는 환경 Application View 프로그램이 돌아갈 환경을 제공, like virtual machine 추상적인 view를 제공 → 하드웨어 캡슐화를 통해 컴퓨터 시스템 추상화 CPUs → Process, Threads Memory → Address spaces (virtual memory) Storage → Volumes, Directories, Files I/O Dev..
DB Index DB 인덱스에 관해서 알아보고자 한다. 인덱스를 보기 전에 DB에서는 어떻게 데이터를 저장하고 관리하는지 간단히 먼저 살펴보고자 한다. Data 저장 구조 데이터베이스 : 블록의 모음 블록 : 디스크에 있는 데이터 전송 최소 단위 페이지 : 메모리에 있는 데이터 전송 최소 단위 레코드 : 블록을 구성하는 데이터 단위 디스크 배치도 논리적으로 인접한 페이지들을 포인터로 연결한다. → 물리적으로 인접하지 않을 수도 있다는 뜻이다. 페이지는 페이지 헤드, 제어 정보를 저정하며, 포인터는 다음 페이지의 물리적 주소를 가르키며 이는 디스크 관리자가 관리한다. 디스크 디렉토리 (페이지 세트 디렉토리) 첫 페이지(실린더 0, 트랙 0)에 위치 모든 페이지 세트의 리스트와 각 페이지 세트의 1번째 페이지 포인터 저장 ..
05. 배열 생성 및 초기화 배열 생성 // 선언과 동시에 빈 배열 생성 int[] intArray = new int[5]; // 크기 5의 빈 배열 // 선언 후, 배열 생성 int[] intArray; intArray = new int[5]; // 크기 5의 빈 배열 // 리터럴로 생성 int[] intArray = {1, 2, 3, 4, 5}; // 이 방식은 최초 변수 정의할 때만 가능 int[] intArray; intArray = {1, 2, 3, 4, 5}; // 오류 배열 접근 // 대입 intArray[0] = 1; intArray[1] = 2; intArray[2] = 3; intArray[3] = 4; intArray[4] = 5; // 접근 System.out.println(intArray[0] + intArr..
04. 조건/분기문 if / else if (조건부분 1) { // 수행 부분 1 } else if (조건 부분 2) { // 수행 부분 2 } else if (조건 부분 3) { // 수행 부분 3 } else { // 수행 부분 4 } switch int i = 10; if (i % 3 == 0) { // i < 20 : 불린 식, 변수, 메소드 System.out.println("C 구역입니다."); } else if (1 % 3 == 1) { System.out.println("A 구역입니다."); } else { System.out.println("B 구역입니다."); } switch (i % 3) { // i : 불린이 아닌 식, 변수, 메소드 case 0: System.out.println("C 구역입니다.")..
03. 형 변환 형변환 바꾸고자 하는 형(to)이 기존의 형(from)보다 넓은 데이터를 담을 수 있는 자료형일 경우 특별한 처리 없이 형을 변환 byte1 byte-128 ... 127short2 byte-32,768 ... 32,767int4 byte-2,147,483,648 ... 2,147,483,647long8 byte-9,223,372,036,854,775,808 ... 9,223,372,036,854,775,807float4 byte1.4023985 x 10^-45 ... 3.4028235 x 10^38double8 byte4.940656458412465 x 10^-324 ... 1.797693134862316 x 10^308 int a = 36; double b = a; // int to double sh..
02. 연산자 산술 연산자 + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 % 나머지 논리 연산자 && AND || OR ! NOT ## 이스케이프 문자 \t 탭 \b 백스페이스 \n 줄 바꿈 (new line) \r 줄 바꿈 (carriage return) \f 폼 피드(form feed) ' 작은 따옴표 " 큰 따옴표 \ 역슬래쉬
01. 변수 타입 및 선언 기본 형식 type variableName; int intVariable; String stringVariable; char[] charArray; 변수 이름 규칙 대소문자 구분 숫자 시작 X _ , $ 사용 가능 → but $는 자동 생성되는 변수명, _는 상수에 쓰이므로 사용 권장 안함 Camel Case 변수 타입 byte 8bits -2^7 ~ 2^7-1 (-128 ~ 127) short 16bits -2^15 ~ 2^15-1 (-32768 ~ 32767) int 32bits -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647) long 64bits -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807) float 32bit..