배열은 무엇이며, 어떻게 사용할까? 배열 --배열은같은 타입의 여러 변수들을 하나로 묶어 관리하는 공간이다. 기본적인 배열 생성하기 (값은 할당x)타입[] 배열이름 = new 타입[배열크기];// 또는타입 배열이름[] = new 타입[배열크기];일반적으로 첫 번째 형식을 많이 사용한다.int[] arr; // 배열 선언 (아직 생성하지 않아 메모리에 할당되지 않은 단계 / 사용 불가)arr = new int[5]; // 배열 생성, 배열 크기는 5 (실제 메모리에 할당 / 사용 가능)// 또는int[] i = new int[5]; //선언과 동시에 생성참고배열을 생성하면 크기 변경이 불가능하다.변경하고 싶다면 새로 배열을 생성해서 기본 배열의 값을 새로운 배열에 옮겨줘야 한다. 배열 생성 후..
전체 글
파일 시스템은 무엇일까? 파일 할당 방법 --운영체제는 파일과 디렉터리를 "블록(block)" 단위로 읽고 쓴다.즉, 하나의 파일이 보조기억장치에 저장될 때는 하나 이상의 블록에 걸쳐 저장된다. 하드 디스크에서 사용하는 가장 작은 저장 단위는 "섹터"이지만,운영체제는 하나 이상의 섹터를 블록이라는 단위로 묶은 다음블록 단위로 파일과 디렉터리를 관리한다.(파일 시스템이 모든 섹터를 관리하기에는 개수가 너무 많고 크기도 작기 때문이다.) 위 그림처럼하드 디스크에는 여러 블록들이 존재하고블록 안에 적힌 번호는 블록의 위치를 식별하는 주소라고 생각하면 된다. 파일을 보조기억장치에 할당하는 방법 종류오늘날까지 사용되는 방식은 "불연속 할당"이다. 연속 할당 (Contiguous Allocation)..
·AWS
갑자기 EC2 인스턴스에 배포한 서버가 다운되었는데 이유가 무엇일까? 상황 --전날까지만 해도 정상 동작하던 서버가 갑자기 접속이 불가능해졌다. 1. 초입을 담당하는 로드밸런서(ELB)를 먼저 확인 ELB에서 전체적인 상황을 보기 위해 "리소스 맵"으로 이동하여 확인한 사진으로현재 최종 목적지인 EC2의 인스턴스에서 "Request timed out"으로 연결이 불가능하다는 것을 알았다.Request timed out은ELB가 인스턴스(대상)와 연결을 시도했으나 응답이 없어서 타임아웃이 발생했다는 의미다. 2. EC2 인스턴스 상태 확인 해당 인스턴스의 상태검사에서 "1/2개 검사 통과" 상태를 확인할 수 있었다.인스턴스의 상태 검사 종류1. 시스템 상태 검사 (System Status Ch..
조건문과 반복문은 어떻게 사용할까? 조건문 --조건문은명시한 조건이 true 또는 false에 따라 명령어(코드) 실행 여부를 결정하는 문법이다. 대표적인 조건문 종류if문, else if문switch문 if문명시한 조건식이 true라면 해당 블록에 존재하는 명령어들을 수행하고false라면 그냥 무시하고 다음 코드로 넘어간다. if(조건식) { 조건이 참(ture)일 때 수행할 명령어}if(a > 10) { System.out.println("a는 10초과"); // a는 10보다 크면 해당 명령어 수행}if(a > 10) { System.out.println("a는 10초과");} else { System.out.println("a는 10이하"); // a는 10보..
연산자는 어떤 것들이 있으며 어떻게 사용할까? 연산자와 비연산자 --연산자 : 연산을 수행하는 기호비연산자 : 연산 작업 대상 x + 3 - 7연산자 : +, -비연산자 : x, 3, 7-- 연산자 종류 --~, |, &, ^는 비트 연산자이기도 하다. 참고사항0으로 나누면 "에러"발생문자형(char)은 유니코드로 저장되어 정수이기에 정수와도 연산 가능 [ a + 1 -> b / d - a -> 3 ]%연산자는 피연산자로 정수만 허용-- 단항 연산자 --피연산자가 하나뿐인 연산자다. +Z // 양수 표시 (생략 가능)-Z // 음수 표시++Z // 우선적으로 Z에 +1을 수행하고 작업 진행 (전위 증가)Z++ // 현재 작업을 진행하고나서 +1을 수행 (후위 증가..
요구 페이징은 무엇이며, 페이지와 프레임은 어떻게 관리할까? 요구 페이징 (Demand Paging) --요구 페이징은프로세스를 메모리에 적재할 때 처음부터 모든 페이지를 적재하는 것이 아니라필요한 페이지만을 메모리에 적재하는 기법이다.즉, 실행 요구에 필요한 페이지만 적재하는 기법이다. 가상 메모리를 통해 작은 물리 메모리보다 큰 프로세스도 실행할 수 있지만,그래도 여전히 물리 메모리의 크기는 한정되어 있다.(결국 실행에 필요한 페이지들은 물리 메모리에 적재되어야 하기 때문)운영체제는 프로세스들이 한정된 메모리를 효율적으로 이용하기 위해서기존에 메모리에 적재된 불필요한 페이지를 선별하여 보조기억장치로 내보낼 수 있어야 하고,프로세스들에 적절한 만큼의 프레임을 할당하여 페이지를 할당할 수 있게 ..
페이징은 무엇이며, 어떻게 동작하는 것일까? 가상 메모리 (Virtual Memory) --기본 메모리 연속 할당 방식은"외부 단편화"와 "물리 메모리보다 큰 프로세스는 실행이 불가능하다"는 문제점이 존재한다. 가상 메모리는물리적으로 존재하는 메모리가 아닌 운영체제가 메모리를 관리하는 논리적인 개념으로물리 메모리와 저장 장치(하드 디스크) 사이에서 데이터를 효율적으로 관리하고,프로그램이 물리 메모리의 크기에 제약받지 않고 실행될 수 있도록 도와준다. 즉, 운영체제가 실제 물리적 메모리와 저장 장치(하드 디스크)를 결합하여 프로그램이 마치 더 큰 메모리를 사용할 수 있는 것처럼 보이게 만드는 추상적인 메모리 공간이다. 가상 메모리를 이용하여 연속 메모리 할당의 문제점들을 해결하는가상 메모리 관리 ..
연속 메모리 할당은 무엇이며, 어떻게 운영될까? 연속 메모리 할당 (Contiguous Memory Allocation) --연속 메모리 할당은각 프로세스의 크기만큼 메모리 주소를 할당받아 연속적으로 메모리에 배치하는 구조로프로세스에 연속적인 메모리 공간을 할당하는 방식을 의미한다. 연속 메모리 할당 방식에는 크게 두 가지 문제를 가지고 있다.1. 외부 단편화2. 물리 메모리보다 큰 프로세스는 실행 불가-- 스와핑 (Swapping) --스와핑은메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식을 의미한다. 메모리에 적재된 프로세스들 중에는현재 실행되지 않는 프로세스, 입출력 작업의 요구로 대기 상태가 된 프로세스 등오랫동안 사용되지 않은 프로세스들을 메모리에서 (스왑 영역으..