no image
[OS] 프로세스와 메모리 레이아웃
프로세스프로세스 개념운영 체제에 대해 이야기 할 때 제기되는 질문중 하나는 CPU가 수행하는 모든 활동을 무엇이라고 부를 것인가이다. 초기 컴퓨터는 job을 실행하는 일괄 처리(batch) 시스템이었지만, 이후 user program, 또는 task를 실행하는 시분할 시스템이 등장했다. 오늘날 단일 사용자 시스템에서도 사용자는 워드 프로세서, 웹 브라우저, 이메일 패키지 등 여러 프로그램을 동시에 실행할 수 있다. 멀티태스킹을 지원하지 않는 임베디드 장치처럼 컴퓨터가 한 번에 하나의 프로그램만 실행할 수 있더라도, 운영 체제는 메모리 관리와 같은 자체적인 내부 프로그래밍 활동을 지원해야 할 수 있다. 많은 측면에서 이러한 모든 활동은 유사하므로, 이 모든 활동을 프로세스(process)라고 부른다. 조금..
2025.05.09
no image
해쉬 함수는 O(1)이 맞을까 / Python의 빌트인 해시 함수 찾기
해쉬 테이블, 해쉬 자체에 대한 기본적인 설명은 다른 분들의 여러 좋은 포스팅에서도 충분히 다루고 있으니 생략한다. 그리고 언어를 파이썬으로 찾아보게 된건, c++의 stl보다 파이썬의 hash의 코드가 더 읽기 쉬웠기도 하고, 요즘 내가 많이 쓰고 있는 언어가 python이라 이를 기준으로 찾아보게 되었다. 파이썬에서 내부구현된 해시 함수를 찾아보자.우선 파이썬 공식문서의 Object protocol에서 PyObject_Hash(PyObject *o) 함수에 대한 설명을 찾을 수 있다.Py_hash_t PyObject_Hash(PyObject *o) Stable ABI의 일부이며, 객체 o의 해시값을 계산하여 반환한다. 실패하면 -1을 반환한다. 이는 python의 표현식 hash(o)와 동일하다. O..
2023.06.19
[운영체제] CPU 스케줄링
목차 및 개요 요즘은 장기, 중기 스케줄러는 사용하지 않고 단기 스케줄러만 남았습니다. 이 단기 스케줄러가 CPU스케줄러를 뜻하는 것이며, 앞으로 설명하는 내용은 단기 스케줄러라고 생각해도 무방합니다. 양이 많기에 인내심을 가지고 잘 읽어주면 매우 감사할 것 같습니다. 설명 내용은 다음과 같습니다. CPU 스케줄링이란 CPU스케줄링의 중요한 용어 CPU 스케줄링의 목표 및 기준 CPU 스케줄링이 이루어지는 시기 CPU 스케줄링 전략의 분류 CPU 스케줄링 전략들 아래 링크에서 내용을 확인해주세요! https://github.com/dev-splin/fake-developer-CS-study/blob/main/OperatingSystem/CPU-Scheduling.md GitHub - dev-splin/f..
2021.08.06
[운영체제] - Blocking vs Non-Blocking / Sync vs Async
dev-splin/fake-developer-CS-study Contribute to dev-splin/fake-developer-CS-study development by creating an account on GitHub. github.com 보충내용 위 깃허브에서 마지막 QA 2번에 보충설명을 해놓았으니, 같이 살펴보셔도 도움이 될 듯 합니다.
2021.06.28
[운영체제] 스케줄러에 대하여
스케줄러에 대하여 설명내용 1. 스케줄링이란? 2. 프로세스 상태 3. 프로세스를 스케줄링 하기 위한 큐의 종류 4. 스케줄러의 종류 (장기, 단기, 중기 스케줄러) 저가 기여하고 있는 깃허브의 설명 링크입니다! https://github.com/dev-splin/fake-developer-CS-study/blob/main/OperatingSystem/Scheduler.md dev-splin/fake-developer-CS-study Contribute to dev-splin/fake-developer-CS-study development by creating an account on GitHub. github.com
2021.06.24
no image
[자료 구조] 배열로 구현한 스택
자료구조를 공부하기 위한 5가지 단계프로그래밍 언어를 어느정도 배우고 나면 그 다음엔 보통 자료구조를 공부하게 된다. 어떤 공부를 하든 마찬가지겠지만 자료구조를 공부하면서도 어디서부터 어떻게, 얼마나 공부해야 자료구��imasoftwareengineer.tistory.com이 분의 블로그를 참고하여, 자료구조 공부 루틴을 따라 가기로 했습니다. 자료구조 공부를 할 때는 다음 5단계를 거칩니다.1단계 : 자료구조의 목적과 이론 이해2단계 : 자료구조의 구현 로직 따라가기3단계 : 자료구조의 형태와 오퍼레이션 직접 구현하기4단계 : 라이브러리를 이용해 자료구조 사용하기5단계 : 자료구조를 적용하여 문제 해결하기 1. 스택의 목적과 이론 이해 1.1 이 자료구조는 어떻게 생겼나?- LIFO - Last In ..
2020.09.14