[학교 수업]

Basic concepts CPU utilization을 최대화하기 위해서 multiprogramming은 필수적입니다. 이때 CPU의 cycle은 CPU burst와 I/O burst의 반복으로 이뤄집니다. *CPU burst에 의해 I/O burst가 일어나기에, CPU burst가 일반적으로 우선합니다(시간적으로).  CPU Scheduler Short-term scheduler는 ready queue에 있는 process들 중 CPU에 할당할 process를 선택하는 역할을 맡습니다. 이때 CPU scheduler가 동작하는 경우는 아래의 4가지 경우입니다:Terminates; running 중인 process가 종료되는 경우Switches from running to waiting queueSw..
Motivation 현대의 응용 프로그램들은 대부분 multithreaded환경입니다. Process를 생성하거나 Process를 기준으로 context switch를 하면 Process자체가 너무 큰 단위이다보니 overhead가 발생합니다. 하지만 Thread의 생성이나 context switch는 이에 비해 가볍게 수행할 수 있어서 Thread가 중요해졌습니다. *kernel들은 일반적으로 multithreaded입니다. Multithreaded Server Architecture multithread환경을 이용한 서버 구조는 다양한 사용자의 요청들을 비동기적으로 처리할 수 있어 효율성이 올라갑니다: 만약 single-thread 환경이었다면, server는 request를 받아들인 후 client..
Two's Complement Operations 음수를 표현하려면 양수 표현에서 보수를 취한 후 +1을 해주면 됩니다. 또한 32bits 연산에서 16bits 상수를 계산하고 싶다면, sign bit를 따라 앞에 있는 bit들을 해당 bit로 채워줍니다. 이를 sign extenstion이라고 합니다. 예를 들어 load byte lb의 경우 register의 크기는 4byte인데 반해, lb의 source는 1byte로 앞에 있는 3byte를 source의 sign bit로 채워주는 것입니다. MIPS Arithmetic Logic Unit (ALU) ALU는 add, addi, addiu, ..., and, beq, slt, etc.의 다양한 ISA들을 지원합니다. 이때 addi, addiu, sl..
Creating a Separate Process via Windows API Process Termination 프로세스는 마지막 명령을 실행한 후, OS에 의해 내부적으로 exit() system call을 호출합니다. 이때 해당 프로세스의 부모 프로세스는 wait()을 통해 자식 프로세스의 상태 정보를 얻을 수 있습니다. 그리고 OS는 해당 프로세스의 자원을 deallocation합니다. 부모 프로세스는 다음과 같은 이유로 자식 프로세스의 실행을 종료시킬 수 있습니다:Child has exceeded allocated resources; 자식 프로세스가 자원 할당량을 초과한 경우Task assigned to child is no longer required; 더 이상 자식 프로세스가 필요하지 않은 ..
Digital Filtering 아날로그의 시그널을 디지털로 변환하는 과정은 해당 시그널을 이용해 다른 연산을 수행하는 데에 있어서 매우 중요합니다. 만약 아날로그 데이터를 그대로 가져온다면 computation을 하는데 overhead가 매우 클 것입니다. digitalization하는 과정은 다음과 같습니다: *일반적으로 ()를 이용하면 analog데이터를, []를 사용하면 digital데이터를 의미합니다. Discrete-Time Systems 어떤 임의의 작업을 통해 x[n]을 입력으로 하여 y[n]를 출력하는 과정을 DSP (Digital Signal Processing)이라고 합니다. 그 예시로는 Squaring; y[n] = (x[n])^2 이나, Running Average; the out..
Six Steps in Procedure Calling 함수를 호출하는 경우 다음의 6가지 과정을 거칩니다:Main routine (caller) places parameters in a place where the procedure (callee) can access them; caller는 callee가 사용할 수 있는 공간에 파라미터들을 옮깁니다. *$a0 - $a3: four argument registersCaller transfers control to the callee; caller는 callee에게 통제권을 넘깁니다. *이 경우 callee가 caller의 register정보들을 memory(stack)에 저장해줍니다.Callee acquires the storage resources n..
Combine Schemas? 아래와 같은 table이 있을때: instructor와 department를 묶을 수 있을까? 왜냐하면 dept_name에 따라 building과 budget이 결정되기 때문에 데이터의 중복이 발생하고, 이를 분리할 수 있을까? 입니다. A combined Schema Without Repetition section(course_id, sec_id, semester, year, building, room_number) 라는 테이블이 있는 경우 이를 잘 분리해서 sec_class(sec_id, building, room_number)와 section(course_id, sec_id, semester, year)로 분리한다면 반복 없이 모든 데이터를 나타낼 수 있을 것입니다. ..
Modeling 데이터베이스에서의 entity들과 테이블들은 모델링 될 수 있는데, 이때 각 튜플에 해당하는 것들을 entity, entity들이 갖는 속성들은 그대로 attribute라고 하며, table은 entity set이라고 부릅니다.예를 들어, 학생 DB에서 특정한 한 학생 Williams는 entity이며, 그 학생이 갖는 이름이나 핸드폰 번호는 attr.입니다. Relationship sets relationship은 몇몇개의 entity들의 관계를 말합니다. 이때 relationship set은 두 개 이상의 entities들로 구성된 관계들을 집합으로 나타낸 것입니다. 예를 들어 student ID가 44553인 Peltier와 instructor_ID가 22222인 Einstein이 ..