전체 글 211

주소 바인딩

주소 바인딩프로그램의 명령어와 데이터를 기억장치에 적재할 때, 그것들의 기적장치 주소를 결정하는 것  컴파일 시간 (compile time) 바인딩컴파일 시간에 절대 코드(absolute code)를 생성한다.프로그램을 기억장치 내에 적재할 위치를 컴파일 시간에 결정함.적재 위치를 바꾸려면 다시 컴파일해야 한다.  적재 시간 (load time) 바인딩 컴파일 시간에 재배치 코드(relocatable code)를 생성한다.적재 시간에 적재할 위치를 결정함.미리 변환된 작업 사용  실행 시간 (execution time) 바인딩프로세스가 실행 중에 기억장치의 한 세그먼트로부터 다른 세그먼트로 이동될 수 있다.바인딩은 실행시간에 결정됨 -> 계속 달라질 수 있다. -> 맵핑 테이블 필요하다변환을 하면서 ..

운영체제 2024.06.14

교착상태

서로 물러서지 않고 양보를 하지 않아서 무한히 대기하는 상태한쪽이 양보를 해야 함(프로세스가 처리를 해줘야 한다) 교착상태: 프로세스들이 각자 자원을 점유하고 있음에도 다른 프로세스가 점유한 자원을 요청하여 무한하게 대기하는 상태하드웨어적 자원: CPU, 기억장치, 입출력 장치소프트웨어적 자원: 파일, 세마포어 각자 자원 유형은 여러개의 instance(사례)를 가질 수 있다자원을 사용하려면 요청->사용->해제 순서대로 교착상태는 다음 네 조건이 동시에 만족해야 한다.1. 상호배제 : 오직 한 프로세스만 자원을 점유할 수 있다2. 점유와 대기 : 하나의 자원을 점유하면서도 다른 자원에 대기하는 것3. 비선점: 점유된 자원은 강제 반환 X 오로지 프로세스가 작업을 마치고 자발적으로 반환4. 순환 대기 : ..

운영체제 2024.06.14

프로세스 동기화

병행 프로세스들이 서로 데이터를 주고 받으면서 수행될 때 프로세스간 동기화 필요 병행 프로세스들이 공유데이터를 접근할 때, 병행접근하면 데이터 일관성이 잘못될 수 있다. 따라서 일관성을 유지하려면 데이터접근을 순서화 하여야한다.  count ++ or -- 는 순서화하여 한번에 하나씩 수행.. 1/1/1/2/1/이렇게 할 경우 일관성이 잘못됨 N개의 프로세스가 공유데이터에 접근하고 각 프로세스는 공유데이틀 접근하는 코드 세그먼트를 갖고 있는데 이것을 임계구역이라고 한다. 임계구역은 순서화해서 수행해야한다. 중간난입이 불가능하여 오직 하나의 프로세스만 임계구역을 수행하여야 한다. 진입구역: 임계구역 들어가기전 허가 구하기 출구구역: 임계구역 수행을 끝낸다는 것을 알림 임계구역 문제 요구 조건 1. 상호배제..

운영체제 2024.06.14

B+, B - tree Index

indexed-sequential file들은 인덱스를 통해 정렬된 레코드에 접근할 수 있다. 하지만 이러한 파일구조는 파일의 크기가 커질수록(레코드의 수가 많아질 수록) 누적된 Insert와 Delete연산으로 인해 많은 오버플로우 블록이 만들어져 전체적인 성능이 떨어지고, 때문에 주기적으로 인덱스 파일을 재구성하여 오버플로우 블록을 정리해야할 필요가 있다. 이런 문제를 해결하기 위해 대부분의 주요 DBMS에서는 B+트리 인덱스를 사용하여 조회 성능을 높인다.   B+- tree는 Multilevel index의 한 종류로, root node와 internal node에는 split value와 하위 노드로의 포인터만 존재 (Sparse Index)leaf node에는 각 레코드의 search key값..

데이터베이스 2024.06.08

INDEXING

인덱스란 효율적인 데이터 접근을 도와주는 자료구조 Index는 오름차순 정렬이기 때문에 우리가 원하는 정보를 찾기가 쉽다. 인덱스 파일search key(DB에서 record를 찾기 위한 기준이 되는 값)와 실제 레코드를 참조하는 pointer로 구성된 index entry(index record)들의 집합인덱스 파일은 일반적으로 원본 데이터 파일에 비해 매우 적은 용량을 차지한다. 인덱스search key를 정렬하여 관리하는 Order Indices분산하여 관리하는 Hash Indices 인덱스 평가 지표Access Type : 인덱스를 사용할 때 효율적인 접근 방식. 쿼리의 종류에 따라 인덱스를 사용하는 것이 효과가 없을 수도 있다.specified value : 특정 값 조회.range of val..

데이터베이스 2024.06.08

SQL 기초

DDL: 데이터베이스 구조를 정의하는 데 사용되며, 예를 들어 테이블을 생성하거나 삭제할 때 사용DML: 데이터를 조작하고 쿼리하는 데 사용되며, 예를 들어 테이블에 데이터를 삽입하거나 삭제하는 데 사용 char vs varchar : char 은 고정. varchar 은 최대 크기, 가변 문자 .NUMBER(p,s) 전체 p자리중에 소수점 s이하 자리 (int , float 등의 ANSI Type도 내부적으론 NUMBER(38) 로 변환됨  create table r(integriry- constraint~); : 테이블 생성                        변수명  변수 타입 PK 는 not null 붙힐 필요 X PK는 애초에 기본 조건이 not null . NOT NULL + UNIQUE..

데이터베이스 2024.06.08

컴퓨터 네트워크 4장- 라우터 내부

4.2 라우터 내부에는 무엇이 있을까?  위 그림을 라우터의 구조를 나타낸다.입력 포트입력 포트의 맨 왼쪽과 맨 오르쪽 박스는 라우터로 들어오는 입력 링크로, 물리 계층 기능을 수행한다.또한 입력 포트는 들어오는 링크의 반대편에 있는 링크 계층과 상호 운용하기 위해 필요한 링크 계층 기능을 수행한다. 이것은 입력 및 출력 포트에서 미들박스로 표시된다.가장 중요한 기능은 입력 포트의 가장 오른쪽에서 수행되는 검색 기능이다. 여기서 포워딩 테이블을 참조하여 도착된 패킷이 스위치 구조를 통해 라우터 출력 포트를 결정한다.라우팅 프로토콜 정보를 전달하는 패킷인 제어 패킷은 입력 포트에서 라우팅 프로세서로 전달된다.여기서의 포트는 앞에서 언급한 포트와는 다르다.스위치 구조스위치 구조는 라우터의 입력 포트와 출력 ..

컴퓨터 네트워크 4장- 네트워크 계층 개요

두 호스트 H1과 H2가 있을 때, 네트워크 계층은 두 호스트 중 하나의 트랜스포트 계층 세그먼트를 추출하여 H2의 트랜스포트 계층까지 전달하는 역할을 한다. 라우터는 트랜스포트 계층과 애플리케이션 계층을 지원하지 않으므로 프로토콜 스택에서 네트워크 계층의 상위 계층은 존재하지 않는다.각 라우터에는 데이터 평면과 제어 평면이 존재한다.데이터 평면 : 입력 링크에서 출력 링크로 데이터그램을 전달한다.제어 평면 : 데이터그램이 출발지 호스트에서 목적지 호스트까지 전달되게끔 로컬 포워딩, 라우터별 포워딩을 대응시킨다. 송신자: 세그먼트를 헤더 + 데이터그램으로 캡슐화하여 링크 계층으로 전달함수신자: 세그먼트를 전송 계층 프로토콜로 전달함네트워크 계층 프로토콜은 모든 인터넷 장치(호스트, 라우터)에 있음라우터:..

CPU 스케쥴

CPU 스케줄링 개요 . 단기 스케쥴러CPU 스케줄링 (CPU Scheduling) 준비 큐의 프로세스들 중에서 CPU를 할당할 순서를 정하는 것운영체제의 단기 스케줄러 (CPU 스케줄러)가 수행함 CPU 스케줄링 알고리즘 (CPU Scheduling Algorithm) CPU 스케줄링 정책 (policy)다양한 CPU 스케줄링 알고리즘이 있으며 특정 상황에 알맞은 것을 선택해야 한다   운영체제의 CPU 스케줄러는 다음의 목표를 달성해야 한다CPU 이용률을 최대화처리량을 최대화반환시간을 최소화대기 시간을 최소화응답시간을 최소화모두 달성할 수 없으므로 응용분야에 따라 적절한 목적에 따라 달리 비중을 줘야함.      First-Come, First-Served (FCFS) 스케줄링      Shortes..

운영체제 2024.04.26