바인딩(Binding) Binding은 연관 짓는 것이다(association). 예를 들어 엔티티(Entity)와 속성(Attribute), 심벌(symbol)과 연산자(operation)를 연관 짓는 것 등을 binding이라고 한다. 바인딩 타임(Binding Time) 바인딩 타임은 결정되는 시점에 따른 분류로 구분지을 수 있다. 언어 디자인 시점(at language design time) - 대부분의 언어에서 제어 흐름 구조, 기본 유형 집합, 복잡한 유형을 만드는 데 사용할 수 있는 생성자 및 언어론의 많은 측면들이 언어를 디자인할 때 선택된다. 언어 구현 시점(at language implementation time) - 대부분의 언어 매뉴얼이 언어 구현자의 재량에 다양한 이슈를 남긴다. ..
자바(JAVA)란? 자바는 C언어에 객체 지향적 기능을 추가하여 만든 C++과 달리, 처음부터 객체 지향 언어로 개발된 프로그래밍 언어이다. 자바는 자바 가상 머신(JVM, Java Virtual Machine)을 사용하여 운영체제와 독립적으로 동작할 수 있다. 따라서 자바는 어느 운영체제에서나 같은 형태로 실행 될 수 있다. 자바의 특징 자바는 객체지향 언어이다. 객체를 만들기 위해서 설계도인 클래스를 작성하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만든다. 객체지향 언어의 특징인 캡슐화, 상속성, 다형성을 완벽하게 지원한다. 이식성이 높다 자바 실행환경이 설치되어 있는 모든 운영체제에서 실행 가능하다. 하이브리드 언어이다. 컴파일 언어인 동시에 인터프리터 언어이다. 텍스트 소스를 컴파일하여 ..
블로그 이사했습니다 아래에서 볼 수 있습니다. https://code-lab1.com/red-black-tree/ [자료구조] 레드-블랙 트리(Red-Black Tree)란? 레드-블랙 트리 쉽게 이해하기 - 코드 연구소레드-블랙 트리는 자가 균형 이진 탐색 트리이다. 레드-블랙 트리는 다음과 같은 조건들을 만족한다.code-lab1.com 레드-블랙 트리(Red-Black Tree)레드-블랙 트리는 자가 균형 이진 탐색 트리이다. 레드-블랙 트리는 다음과 같은 조건들을 만족한다.1. 모든 노드는 빨간색 혹은 검은색이다.2. 루트 노드는 검은색이다.3. 모든 리프 노드(NIL)들은 검은색이다. (NIL : null leaf, 자료를 갖지 않고 트리의 끝을 나타내는 노드)4. 빨간색 노드의 자식은 검은..
블로그 이사했습니다. 아래에서 글을 볼 수 있습니다! https://code-lab1.com/avl-tree/ [자료구조] AVL트리란? AVL트리 쉽게 이해하기, AVL트리 시뮬레이터 - 코드 연구소AVL트리는 이진탐색트리의 한계를 극복할 수 있는 균형잡힌 이진탐색트리이다code-lab1.com AVL 트리란?예전에 이진탐색트리에 대해 알아본적이 있다. [자료구조] 이진탐색트리(Binary Search Tree)의 개념, 이해 | C언어 이진탐색트리 구현이진탐색트리(Binary Search Tree)이란? 이진탐색트리란 다음과 같은 특징을 갖는 이진트리를 말한다. ( #이진트리 - 각 노드의 자식 노드가 최대 2개인 트리) 1. 각 노드에 중복되지 않는 키(key)가 있다c..
블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%90%EC%B2%B4-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/ [운영체제] 페이지 교체 알고리즘 (FIFO/OPT/LRU/LFU/MFU) - 코드 연구소이때 빈 프레임이 없을 경우 희생 당할 프레임(victim frame)을 고르는 알고리즘이 페이지 교체 알고리즘이다.code-lab1.com 페이지 교체 알고리즘 (Page Replacement Algorithm)이전 포스팅으로 요구 페이징(Demand Paging)에 대해 알아보았다. 필요한 페이지가 메모리에 없을 때 page-falut가 발생하고 Backing Store에서 해당 페..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC/ [운영체제] 가상 메모리(Virtual Memory)와 요구 페이징(Demand Paging), Valid-Invalid Bit, 페이지 부재(Page Fau메인 메모리의 크기는 한정되어 있다. 따라서 물리적인 메모리 크기보다 크기가 큰 프로세스는 실행시킬 수 없게 된다. 따라서 나온 방법이 가상 메모리이다.code-lab1.com 가상 메모리(Virtual Memory)메인 메모리의 크기는 한정되어 있다. 따라서 물리적인 메모리 크기보다 크기가 큰 프로세스는 실행시킬 수 없게 된다. 예를 들어 메인 메모리의 크기가 100MB 일 때 30..
블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/copy-on-write/ [운영체제] Copy On Write(COW)란? Copy On Write 예시 - 코드 연구소이처럼 Copy On Write는 리소스가 복제되었지만 수정되지 않은 경우에 새 리소스를 만들 필요 없이 복사본과 원본이 리소스를 공유하고, 복사본이 수정되었을 때만 새 리소스를 만드는 리소스 관code-lab1.com Copy On Write (COW) 란?123456std::string x("Hello"); std::string y = x; // x and y use the same buffer y += " World!"; // now y uses a different buffer ..
블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/%EC%84%B8%EA%B7%B8%EB%A9%98%ED%85%8C%EC%9D%B4%EC%85%98/ [운영체제] 세그멘테이션(Segmentation)이란?, 세그멘테이션 vs 페이징 - 코드 연구소반면, 세그멘테이션은 프로세스를 논리적 내용을 기반으로 나눠서 메모리에 배치하는 것을 의미한다.code-lab1.com 세그멘테이션(Segmentation)이란?페이징은 프로세스를 물리적으로 일정한 크기로 나눠서 메모리에 할당하는 것을 의미한다. 반면, 세그멘테이션은 프로세스를 논리적 내용을 기반으로 나눠서 메모리에 배치하는 것을 의미한다. 세그멘테이션은 프로세스를 세그먼트(segment)의 집합으로 표현한다. 이때 세그먼트는 논..
블로그 이사합니다아래에서 확인 가능합니다. https://code-lab1.com/%ED%8E%98%EC%9D%B4%EC%A7%80-%ED%85%8C%EC%9D%B4%EB%B8%94-%EA%B5%AC%EC%A1%B0/ [운영체제] 페이지 테이블 구조 (Hierarchical Page Table, 2-level Page Table, Hashed Page Table, Inverted Page Table)페이지 테이블 구조에는 Hierarchical Page Table, 2-level page Table, Hashed page Table, Inverted Page Table 등이 있다code-lab1.com Hierarchical Page Table하나의 페이지 테이블 안에 여러개의 페이지 테이블을 넣은 페이..
블로그 이사합니다아래에서 확인 가능합니다.https://code-lab1.com/%ED%8E%98%EC%9D%B4%EC%A7%95/ [운영체제] 페이징(Paging)이란? 페이지 테이블이란? - 코드 연구소페이징이란 논리주소의 메모리를 고정된 크기의 페이지(Page)로 나누어 관리하는 기법이다.code-lab1.com 페이징(Paging)이란?페이징이란 논리주소의 메모리를 고정된 크기의 페이지(Page)로 나누어 관리하는 기법이다.페이징은 아래와 같은 특징들을 갖고 있다.물리주소 공간(Physical address)은 연속적이지 않을 수 있다(noncontiguous)페이지는 모두 같은 크기를 가진다.물리주소 공간을 페이지와 같은 사이즈로 나눈 것들을 프레임(Frame)이라고 한다.페이지 사이즈(=프레..