목록컴공 (9)
운동하는 공대생

안녕 오늘은 주말인데 일기를 쓰는 중임 오늘 아침부터 대학원 구술 면접 도움이? 그런 걸 했는데 내가 왜 긴장이 됐는지... 뭔가 다들 열심히 노력하는 모습을 다시 보니까 나도 자극이 다시 온 느낌임 다들 좋은 결과 있었으면 좋겠네 나도 사실 완전 초반이라 면접을 본 게 생생한데 나도 그 당시에 엄청 떨면서 대기를 했던 기억이 있어서 오늘 뭐가 대기를 하면서 뭘 물어보는 사람이 있으면 더 긴장을 풀라고 이야기를 했음 사실 당사자 입장에서는 그런 조언이 귀에 들어오지는 않겠지만... 아침에는 컴공 대학원 시험이 있었는데 오늘 면접을 보러 온 사람들이 거의 정장을 많이 입고 있어서 놀랐음 사실 나는 면접 때 셔츠 하나만 입고 와서 ㅋㅋㅋㅋㅋ 면접은 3시간? 그 정도 한 거 같고 사실 그 안에서 계속 면접을 ..

1. MotivationOS 는 process 구조를 통해서 보안과 독립성을 가진다. 하지만 이런 방식은 multi-core에서 비효율을 야기하고 또한 여러개의 process를 새로 생성하는것은 굉장히 많은 비용이 든다는 문제가 있다. 그래서 이런 문제를 해결하고자 Thread가 등장하게 되었다. 2. ThreadThread는 기본적으로 프로그램을 실행을 하기 위해서 존재하면 각각의 Thread ID와 프로세스의 실행에 필요한 register 그리고 stack이 존재한다. 또한 프로그램을 데이터를 관리하는 메모리 주소는 같은 공간을 활용한다. 또한 thread 끼리는 보안성을 가지지 않으며 데이터, 코드, 힙을 같이 공유한다. 결과적으로 process를 생성하고 switch하는 비용보다 thread를 ..

1. SwappingSwapping이란 먼저 물리적 메모리에 공간(RAM)이 충분하지 않을 때 발생합니다. 즉 실행을 해야 하는 프로세스를 저장 공간의 부족으로 잠시 다른 스토리지에 프로세스를 옮겨두는 방식을 말한다. 예를 들어 물리적 주소가 cache라고 한다면 저장 공간이 적어서 많은 프로세를 동시에 메모리에 저장을 하기가 어려우니 실행 중이지 않은 그런 프로세스를 디스크에 위치시킨다. 메모리의 계층으로 본다면 각각의 메모리가 공간의 부족으로 메모리가 더 많은 메모리로 저장하는 그런 위치는 모든 메모리에서 가능하며 이것을 backing store 이라고 이야기한다.2. SwapMemory overlays이 방식은 가장 원시적인 방법으로 코드나 데이터를 프로그래머가 변경을 해주는 방식이다.Process..

1. Idea프로그램이 작동할 때 프로세스나 많은 작업들이 리소스를 사용하는데 여기서 동시에 작동하는 thread에서 공유된 자원을 활용하기에 앞서 여러 문제들이 발생한다. 그래서 이런 문제를 해결하고자 lock이라는 방식을 사용하며 이런 공유 자원들을 여러 thread에서 접근을 한다고 한다면 이를 충돌을 막기 위해 lock이 활용되는 부분을 critical section이라 한다. 동일한 리소스를 접근하는 critical section의 예시는 아래와 같다. 공유 변수 또는 데이터 구조 : 두 개의 스레드가 동시에 동일한 변수를 증가시키는 경우메모리 공유(Shared Memory)파일 시스템: 여러 프로세스가 동시에 동일한 파일에 쓰기를 하는 경우2. Lockslock은 데이터에 대한 mutual e..

1. Problem 이전에서 설명을 했지만 VA에서 PA로 주소를 변환하는 과정이 굉장히 많은 비용이 발생한다. 그래서 이런 방식은 시간이 많이 걸리고 또한 linear 한 단순한 방식이 아닌 multi-level page table 방식 같은 경우에는 더 많은 시간이 소요된다.2. TLB (Translation Lookaside Buffer)문제에서 이야기를 했듯이 translation 시간을 빠르게 하기 위해서 MMU안에 TLB라는 cache 하드웨어가 존재한다. 위에 나온 사진을 보면 먼저 offset이 4비트로 표현된 16 bytes의 크기의 page로 구성이 되어진다고 할 때 페이지의 주소를 PA로 변환하면 page table에 의하여 변환이 될 것이다. 하지만 여기서 VPN은 같고 offset..

1. ReviewSegmentation : 가상 메모리에서 물리적 메모리로 데이터를 메핑 할 때 데이터의 제일 앞에 있는 2개의 비트를 데이터의 종류를 구분하는 용도로 사용을 하였다.하지만 여기서의 문제는 사진에서 보여지듯이 External Fragmentation 즉 데이터를 분류하면서 데이터들 간의 작은 공간의 발생으로 메모리 낭비가 발생하는 문제가 있다. 이런 문제를 해결하기 위해서 Segmentation 에서는 데이터의 종류에 따라서 고정되지 않는 사이즈로 물리적 메모리에 적재했다면 Paging은 고정된 사이즈로 주소를 정해둔다. 이것은 나눠진 부분을 Page frame이라고 무르며 이것의 사이즈는 2의 제곱 형식으로 사이즈가 구성된다. 여기서 Page와 Frame의 블록의 크기는 같다. 2. ..

1. CPU Scheduling정의 : 어떤 프로세스를 다음으로 실행을 할 것인지에 대한 방식 다음에 어떤 프로세스를 실행을 해야하는지는 여러 가지 지표를 통해서 선택이 되어야 한다.Minimize trunaroung time : 작업 소요 시간Minimize response time : 최초 실행 시간 Minimize waiting time : process 대기하는 queue에서 많은 시간을 사용하지 않아야 한다.Maximize throughput : 처리율이 최대로 나와야 한다.Maximize resource utilization : 디바이스 활용을 최대화Minimize overhead : context switch를 최소화해야 한다.Maximize fairness : 같은 양의 CPU 리소스를 활..

1. Mode switch User -> KernelInterrupts: 외부의 hardware에 대하여 발생한다.Exceptions: 프로그램에서 예상하지 못한 상황에서 발생한다. 예를 들어 외부 침입자 같은 상황System calls: process에서 kernel에 요청을 줄때 Kernel -> User- Return from interrupt, exception, system call : 이전에 User에서 Kernel 상태가 끝이 나고 돌아올 때- User-level upcall(UNIX signal) : 비동기적 사용자 프로그램의 처리 2. Data Transfer Modes PIO(programmed IO)CPU가 I/O 디바이스와 memory 사이에서 데이터를 전송하는 일에 관련되어 있다..