CS(76)
-
[CS] 사용자 수준 스레드 vs 커널 수준 스레드 차이는?
사용자 수준 스레드 유저 라이브러리나 애플리케이션 수준에서 사용되는 스레드이다. 커널은 이 스레드에 대해서 알지 못한다는 특징이 있다. 장점 - 스레드 간 컨텍스트 스위칭 비용이 없다. - 다양한 OS에서 변경 없이 사용 가능하다. - 쓰레드를 만들기 위해 시스템콜이 필요없기 때문에 생성하는데 커널 수준 스레드보다 시간이 더 적게 걸린다. 단점 - 멀티 코어를 활용할 수 없다. - 하나의 스레드가 블락이 되면 다른 모든 스레드도 블락이 된다. 커널 수준 스레드 운영체제 커널 수준에서 관리해주는 스레드이다. 사용자 수준 스레드와 다르게 커널이 이 스레드에 대해서 알고 있다. 장점 - 멀티 코어를 통한 병렬화를 활용할 수 있다. - 하나의 스레드가 블락이 되어도 다른 스레드가 블락이 되지 않는다. (Isol..
2024.02.27 -
[CS] 핀토스 환경 쉽게 구축할 수 있는 레퍼런스
https://alfredthiel.gitbook.io/pintosbook/getting-started/environment-setup Environment Setup - PintosBook The easiest way to set up the development environment is Docker. Your kind TAs have built a docker image for you in advance that contains all the toolchains to compile, run and debug Pintos. This docker image has been tested on Mac (Intel chip), Mac (Apple alfredthiel.gitbook.io 결론: 도커가 정말 ..
2024.02.11 -
[CS] Hashing에 대한 나름의 이해
Hashing은 hash function을 이용하여 암호화하는 것이다. 특징으로는 세 가지가 있다. 1. One-way: 복호화가 불가능하다. 2. Deterministic: 같은 값의 해시는 같다. 3. Avalanche effect: 인풋값이 조금만 바뀌어도 해시값은 크게 변한다. 복호화가 왜 불가능할까? 챗지피티에 따르면 역함수가 없는 함수라고 한다. 무한한 입력에 대해 유한한 출력이기 때문이다. 아무튼 복호화가 안된다는 건 Hashing의 큰 장점이다. 이를 무너뜨리기 위한 방법으로는 대표적으로 다음과 같은 것들이 있다. 1. Brute Force Attack: 모든 값을 다 대입해서 일치하는 해시값을 찾아내는 방식이다. 128 bit 이상의 해시를 사용하면 뚫기 어렵지만 낮은 해시를 사용하면 뚫..
2024.01.10 -
[CS] producer-consumer pattern
producer는 생산하고 consumer는 사용하는 pattern이다. 크게 세가지 경우에서 사용된다. 1. foreground thread latency 2. loadbalance 3. backpressure manangement 1. foreground thread latency: IO나 UI 같이 입력을 받아오는 경우 시스템이 과부하되는 것을 막기 위해 queue에 저장하기만 하고 저장된 걸 다른 background threads가 가지고 오게 해서 입력을 받는거에만 집중할 수 있게 한다. 2. loadbalance: thread 간 작업을 공평하게 분배하기 위해서 사용하기도 한다. queue에 쌓인 것을 여유가 있는 thread가 하도록 하는 식으로 진행한다. 즉, 일이 없으면 일을 하는 것이다..
2024.01.07 -
[CS] 페이징과 세그먼테이션에 대한 나름의 이해
페이징과 세그먼테이션은 비연속 메모리 할당 방법이다. 페이징은 가상메모리와 물리메모리에 같은 크기의 페이지와 프레임이라는 단위로 분할한다. 그리고 이들을 서로 매핑하는 방식이다. 장점은 페이지 크기가 커질수록 전달되는 데이터의 양이 커지고 이는 I/O 더욱 효율적으로 수행하도록 한다. 또한 외부 단편화 문제를 해결할 수 있지만 내부 단편화가 생긴다. 세그먼테이션은 코드, 데이터, 스택, 힙 영역 단위로 물리메모리에 올린다. 장점은 논리적인 영역으로 구분하기 때문에 메모리 영역을 보호할 수 있지만 외부 단편화 문제가 발생한다. Reference Silberschatz, A., Galvin, P. B., Gagne, G. (2018). Operating System Concepts (10th ed.). US..
2023.11.25 -
[CS] 가상 메모리와 필요성에 대한 나름의 이해
가상 메모리는 운영체제가 메모리를 관리하는 방식이다. 가상의 메모리라는 개념을 만들고 물리 메모리에 매핑을 한다. 이 덕분에 물리 메모리 크기보다 더 큰 프로세스를 돌릴 수 있게 된다. 또한 더 많은 프로세스를 돌릴 수 있게 된다. Reference https://www.yes24.com/Product/Goods/121769526 기술 면접 대비 CS 전공 핵심요약집 - 예스24 1분 1초가 아쉬운 취업/이직 준비생을 위해기술 면접에 필요한 CS 전공의 핵심 내용만 간추렸다!비전공자는 물론 IT 전공자라도 광범위한 CS 전공 중에 어떤 내용이 출제될지 감을 잡기 어렵다. 서 www.yes24.com
2023.11.25