전공 49

9. Process Management

1. Programms / Process / Thread 개요 1) Programms / Process 프로그램이라고 하는 것은 2진 형태의 데이터의 집합이다. dormant라고 하는데 이는 아직 동작을 시작하지 않았지만 실행될 수 있는 상태를 말한다. 프로그램이 실행된다고 하는 것은 HDD에 저장되어 있는 프로그램이 process 형태로 바뀌는 것이다. 그럼 왜 프로그램은 2진 형태로 존재해야하는가? => 프로그램이 메인 메모리에 적재되었다고 모두 실행되는 것이 아니다. 그럼 어떤 프로세스가 현재 실행 중이다 애기할 수 있냐면 CPU 자원을 할당 받았을 때만 프로세스가 실행되는 것이다. 메인 메모리에 적재된 명령어 중 CPU 자원을 할당 받지 않는 명령어는 sleep 한다라고 한다. 프로세스 A를 실행..

8. Multy-Process와 Mutual Locking

1. Process management 개요 1) 프로세스의 형태 운영체제는 직역을 하면 구성 시스템이다. 그럼 무엇을 구동하냐? 프로세스를 구동시키기 위해 존재한다. Mutual Locking이 왜 필요한지는 프로세스를 알아야 왜 필요한지를 알게 된다. 프로그램은 storage(such as HDD)에 저장되어 있다. (이는 실행될 수 있는 2진 형태이다.) 이 프로그램을 실행하게 되면 실행되 수 있는 2진 소프트웨어가 메인메모리에 적재가 된다. 이것이 loading이라고 한다. HDD->RAM으로 loading 될 때 기존의 프로그램에서 모양이 달라지며 loading되는데 아래와 같은 메모리 구조를 가지며 프로세스가 된다. 위와같이 생긴것이 프로세스이다. Stack heap data section t..

7-2. 관계대수와 관계해석 : 이항 관계 연산

1. 이항관계 연산 1) 조인 연산 관계 대수에서 조인연산의 기본 형태는 우선 아래와 같다. R와 S라는 테이블의 카티션곱을 Q라고할 때 에서 join condition은 R과 S에 속하는 애트리뷰트들 간의 관계 조건을 나타낸 것인데 그러한 join 조건을 만족하는 Q만을 나타낸 것을 의미한다. 예를 들어 Mgr_ssn은 부서에서 부서장의 번호를 나타낸 것이고 Ssn은 직원의 번호를 나타낸 것인데 Mgr_ssn즉 부서장을 나타내는 번호를 가진 직원의 이름을 알려고한다. 위와 같은 join 조건으로 부서와 직원 테이블의 카티션곱이 이루어지고 join조건을 만족하는 투플만 남게 된다. 그리고 프로젝트 연산을 통해 Fanem, Lname 애트리뷰트 행만 추출하면 부서장을 나타내는 번호를 가진 직원의 이름을 알..

7-1. 관계대수와 관계해석 : 단항 관계 연산(SELECT, PROECT), 집합 이론

1. 실렉트(SELECT) 연산 ● 실렉트 연산 실렉트 연산이란 단항 연산자로 하나의 릴레이션에만 적용된다. 더욱이 실렉터는 각 투플에 개별적으로 적용된다. 하나의 릴레이션에서 을 만족하는 투플들만 걸러내는 연산으로 실렉트는 릴레이션을 두 집합으로 수평분할 한다고 말할 수 있다. (조건을 만족하는 투플들, 조건을 만족하지 않는 투플들) 아래 예시를 보자. 위 예시는 이 Dno = AND Salary > 25,000이 된다. 부서 번호가 4이고 동시에 급여가 25,000이상인 투플들만 걸러내라는 의미가 된다. 비교 연산자는 아래 중 하나이다. 실렉트 연산의 결과 릴레이션의 차수(=애트리뷰트의 개수)는 원래 릴레이션 R의 차수와 같다. 실렉트 연산은 아래 성질을 만족한다. 2. 프로젝트(PROJECT) 연산..

6. Processor Design

1. review 0) 학습 큰 그림 전체적인 datapath와 control의 개념을 먼저 이해하고 명령어와 데이터가 어떻게 관리되는지 아는 것이 이 장의 목표이다. 처음에는 single cycle 디자인부터 시작해서 multi cycle 디자인으로 확장해 나가는 방식으로 학습하는 큰 그림을 그려야함 1) Processor의 구성요소 Datapath, control 개념 정리 컴퓨터 시스템의 연산 기능을 담당하는 하드웨어인 Processor에 대해서 정리한다. 그 중 Datapath와 Control 관점에서 정리할것이다. 대표적으로 사용하는 데스크탑, 스마트폰 등 뿐만 아니라 가전제품의 인공지능, IOT와 같은 컴퓨터 시스템이 일상생활에서도 적용되고 있습니다. 이런 다양한 장치를 컴퓨터에 범주에 포함시..

6-3. SQL 스키마 변경문

1. 스키마 삭제 DROP 명령 이전에서 다루었던 갱신 연산은 투플 단위로 일어나는 갱신 연산이었다. 스키마 변경문 갱신 연산에 대해 알아본다. 1) cascade 설명 테이블에서 투플의 삭제 연산을 수행할 때 cascade 옵션에 대해 우선적으로 설명한다. cascade 개념이 뭔지 알기 위해서임. DEPARTMENT의 Dnumber 중 111이라는 번호를 제거하는 연산을 한다고 생각해보자. 이때 EMPLOYEE의 Esn(외래키) 는 Dnumber를 참조하기 때문에 삭제 연산이 거부되지면 옵션2인 cascade 옵션을 사용하면 연쇄 삭제로 아래와 같이 삭제가 가능하다. DEPARTMENT의 Dnumber 중 111 삭제 -> EMPLOYEE의 Esn중 111을 가진 EMPLOYEE relation의 t..

6-2. 사용자 주장으로 제약 조건 만들기 / SQL view

1. SQL에서 주장으로 일반 제약 조건 명시 1) CREATE ASSERTION 주장 SQL에서 이전까지는 기본키, 유일 키, 엔티티 무결성, 참조 무결 성 등 기본적인 제약 조건들은 CREATE TABLE 문에서 table(relation)을 생성할 때 명시된다. 그리고 만들어진 테이블의 투플들이 지정된 제약 조건들을 무시하면 제약 조건 위반이 발생되게 됩니다. 또한 CREATE TABLE 절 끝에 CHECK 절을 통해 table의 투플들을 제한할 수 있습니다. 이때 이런 CHECK 절이나 CREATEA TABLE 안에 지정된 제약 조건들은 table의 투플 수정, 추가, 삭제 등 업데이트 작업이 이루어질 때만 적용됩니다. 이제 아래의 코드를 우선 보면 CREATE ASSERTION M1 CHECK ..

6. 데이터 링크층

1. 데이터 링크층 1) 노드의 뜻, 서비스 인터넷은 라우터, 스위치 같은 장치들을 연결하는 네트워크의 조합이다. 데이터 링크층에서 통신은 노드-대-노드 단위로 이루어진다. 점-대-점 링크를 생각해보며 두 개의 종단 호스트와 그 중간 라우터들은 모두 노드로써 노드 사이의 네트워크로 나타내는 것이 일반적이다. 한 노드에서 다른 노드로 이동하는데 LAN과 WAN은 라우터를 통해서 연결된다. 물리층은 데이터 링크층에게 서비스를 제공하고 데이터 링크층은 네트워크층에 서비를 제공하는 것이다. 예를 들어 물리층이 데이터 링크층에 제공하는 서비스로는 전달하려는 데이터를 디지털 신호로 보낼지 아날로그 신호로 보낼지를 결정한다. 그리고 실제 전달 매체를 통해 데이터가 전달되는 것을 정의한다. 따라서 데이터 링크 층에서는..

6-1. 추가 SQL 명령어: 중첩 질의

1. More Complex SQL Search Query 1) NULL의 3가지 값 SQL 에서는 NULL 값이 3가지 상태를 의미한다. 알려지지 않은 값 어떤 사람의 나이는 알려지지 않을 수 있다. 이용할 수 없거나 보류해둔 값 어떤 사람은 자신의 번호를 가지고 있지만 알려주고싶지 않은 경우가 있음 적용할 수 없는 애트리뷰트 고졸인데 대학을 쓰는 애트리뷰티에서는 NULL 값을 써야함 SQL에서는 어떤 애트리뷰트가 NULL 값을 가질 때 위 3가지 경우 중 어떤 경우인지 모르는 경우도 있다. 따라서 SQL에서는 NULL 값에 의미를 두지 않는다. SQL에서 각 릴레이션에 있는 투플들의 NULL 값은 서로 다르다. 일반적으로 SELECT-FROM-WHERE 문에서 WHERE 문에는 해당 논리식을 참으로 ..

7. Buffered IO

1-1. 도입: HDD는 왜 느린가? (하드웨어적 관점) HDD는 왜 느린가? RAM을 왜 사용하는가? HDD는 굉장히 느리다. 왜 느리냐면 HDD의 구조를 뜯어보면 disk 라는 동그란 CD 같은 원판이 있다. 이곳에 데이터가 기록된다. 이 CD 원판은 회전을 하는데 reder라고 하는 일종의 핀이 있다. 이 핀이 읽고 쓰는 역할을 담당하는 ‘막대기’ 같은 것이다. 예를 들어 디스크로 read 명령이 주소 단위로들어온다. 그럼 디스크는 해당 주소의 위치에 있는 데이터를 읽어야한다. 디스크 원판은 회전을 하는데 위 read 명령에 의해 디스크에서 접근해야하는 주소가 방금 회전을 해서 지나갔다? => 그럼 한바퀴 돌아 해당 주소가 핀에 도달할 때까지 다시 기다려야한다. 이는 아무리 짧다해도 물리적인 시간이..