컨텍스트 스위치라는 게 있네 아 이거는 프로세스가 번갈아가면서 실행되는거구나라는 생각에서 멈출 수 있다.
근데 여기서 사고가 끊기면 더 이상 깊어질 수 없다.
왜 컨텍스트 스위치라는게 필요한데?
- 프로세스를 번갈아가면서 실행시키기 위해
- 왜 프로세스를 번갈아가면서 실행해야 되는데?
- 해당 프로세스가 I/O 작업 등으로 인해 오랫동안 대기하는 상태면 자원의 낭비가 발생할 뿐더러, 하나의 프로세스만 실행되는 경우는 현대 컴퓨터 시스템에서 거의 없기 때문
- I/O 작업은 왜 오래걸리는데?
- blur blur ~~~
- I/O 작업은 왜 오래걸리는데?
- 해당 프로세스가 I/O 작업 등으로 인해 오랫동안 대기하는 상태면 자원의 낭비가 발생할 뿐더러, 하나의 프로세스만 실행되는 경우는 현대 컴퓨터 시스템에서 거의 없기 때문
- 왜 프로세스를 번갈아가면서 실행해야 되는데?
컨텍스트 스위치는 어떻게 이루어지지?
- OS에서 PCB라는 자료구조를 두어 프로세스를 관리하는데 스케줄러에서 선정된 다음 수행 프로세스와 이전 프로세스를 교체할 때 이 PCB에 현재 수행 중이던 내용을 저장해놓는다.
PCB에는 Program Counter, register 내의 값들, stack 영역의 주소 값 등등 여러가지 정보가 들어가게된다.
- Program Counter는 뭔데?
- stack안에는 어떤 정보가 들어가는데?
등등 깊이는 끝이 없다.
단순 input만 하는 것이 아닌 스스로 설명할 수 있어야 된다. 그게 아니면 제대로 아는 것이 아니다. 아는척을 하는 것이다.
- 강의나 자료를 통해 개념을 정리하고, 전반적 정리가 끝나면 what, why, how 관점에서 분석하고 질문에 스스로 답할 수 있도록 정리 및 연습
- 컴퓨터 네트워크, 운영체제, 데이터베이스는 강의로 한 학기 내용 복기 후 면집 질문 위주로 deep dive(2w 1h)
- 자료구조는 전공책으로 필요한 부분만 정리(잘 아는 것들 제외하고 검색트리들 AVL 트리, RED-BLACK 트리, B-트리 같이 학부 때 건너 뛰었지만 중요하고 잘 모르는 것들 위주로 정리, 무엇인지, 왜 쓰는지, 어디 쓰이는지, 어떻게 쓰는지)
- 알고리즘은 면접 질문 위주로 설명 가능하게 정도로 정리(대표 문제, 정의, 시간복잡도 등)
- PS하면서 어려운 문제긴 하지만 이게 왜 이 알고리즘이지 하는 문제들이 가끔 있는데, 내가 제대로 이해한 게 맞나 의문이 듦
- 자료가 신뢰할 만한지 항상 판단해야함, 근거 없는 확신은 인지 오류임을 명심하자
- 이왕이면 전문 소스(강의, 전공책)으로 보고 이해가 안되는 것들이나 안나오는 것들은 블로그같은 참고 자료 보되, 틀린 내용일 수 있음을 감안하고 봐야됨(소스 출처 남기기)
- 이런 느낌일까? 멀티프로세싱 웹 스크래퍼를 써봤는데 여기서 발전시켜 나가보자
$ yarn insert:toc # 목차 생성
$ yarn update:toc # 목차 갱신, 백업 파일 생성됨
$ yarn delete:backup # 백업 파일 제거