본문 바로가기

2024/0123

[UCB CS162 OS] Lec06 Synchronization(1) Context Switch Kernel은 각 프로세스를 PCB(process control block)으로 나타낸다. process 간의 문맥전환은 기존 프로세스의 상태를 해당 PCB에 저장하고, 실행하려는 새로운 프로세스의 상태를 해당 PCB로부터 열어와서 실행한 뒤에 다시 그 PCB에 저장하고, 처음에 저장해 둔 PCB로부터 기존 프로세스를 다시 불러와서 실행하는 방식으로 이루어진다. 여기서 PCB로의 save/load는 kernel에서 이루어진다(privilege level: 0). 이를 위해서는 system call이나 interrupt가 필요하다. Process(내지 Thread)의 수명주기 process는 new, ready(run될 수 있는 상태), running(실행되는 상태), waiti.. 2024. 1. 11.
[CMU 15-445 Intro to DB Sys] Lec12 Query Execution(1) Query Processing Models Iterator Model 각 operator는 open(), next(), close() 함수를 갖고 있음. next()를 통해 다음 single tuple을 반환하거나, 더 이상 없을 경우 EOF를 반환함. 일종의 iterator 작동과 동일하다고 생각하면 됨. open(), close()는 C++의 constructor, destructor와 유사한 역할로 생각하면 됨. 우선 쿼리의 윗부분부터 시작해서 아래로 가기까지 operator들을 open해준다. 그리고 next() 함수는 child operator가 반환한 값을 iterate하는 형식으로 되어 있다. root node에서 child에 대해 next()를 호출하면, child는 또 마찬가지로 chil.. 2024. 1. 11.
[UCB CS61C] Lec11, 12 RISC-V Instruction Formats (Memory address) Instruction과 data 모두가 메모리에 저장되게 되면서, 모든 것이 memory address를 갖게 되었다. (Binary compatibility) 프로그램이 binary의 형태로 배포되며, 특정한 instruction set에 bind됨. instruction set들은 과거의 프로그램도 실행할 수 있는 방식으로 만들어지고 있음. RISC-V에서는 instruction도 32-bit word size에 맞게 만들고 있음. 이를 위해 instruction word를 "field"들로 나누어 줌. 단순화를 위해 6 basic types of instruction formats을 정의함. R-Format(register간 arithmetic 연산) opcode(0-.. 2024. 1. 10.
[CMU 15-445 Intro to DB Sys] Lec11 Join Algorithms Operator Output Data Early Materialization: inner table과 outer table에서 attribute의 값들을 복사하여 새로운 output tuple들로 만들어 줌. 이렇게 하면 이후에 다시 base table로 돌아갈 필요가 없다는 장점이 있음. Late Materialization: join key들과 함께, 해당되는 tuple들의 record ID들만을 복사함. 이는 이후에 다시 base table로 와서 attribute 값들을 찾아야 함. 불필요한 데이터를 복사하지 않기 때문에 column store에 있어서 이상적임. 하지만 이렇게 하면 최종 output을 얻기 전에는 cost가 어느 정도 들지 예상하기 어렵고, 오늘날 storage와 computin.. 2024. 1. 10.