본문 바로가기

분류 전체보기54

메모리 관리 전략 각각의 프로세스 는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려있다. 단지, 운영체제 만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약을 받지 않는다. Swapping : 메모리의 관리를 위해 사용되는 기법. 표준 Swapping 방식으로는 round-robin 과 같은 스케줄링의 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억장치(e.g. 하드디스크)로 내보내고 다른 프로세스의 메모리를 불러 들일 수 있다. 이 과정을 swap (스왑시킨다) 이라 한다. 주 기억장치(RAM)으로 불러오는 과정을 swap-in, 보조 기억장치로 내보내는 과정을 swap-out 이라 한다. swap 에는 큰 디스크 전송시간.. 2022. 4. 21.
프로세스 스케줄링 프로세스를 스케줄링하기 위한 Queue 에는 세 가지 종류가 존재한다. Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue : 현재 메모리 내에 있으면서 CPU 를 잡아서 실행되기를 기다리는 프로세스의 집합 Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합 각각의 Queue 에 프로세스들을 넣고 빼주는 스케줄러에도 크게 세 가지 종류가 존재한다. 장기스케줄러(Long-term scheduler or job scheduler) 메모리는 한정되어 있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(일반적으로 디스크)에 임시로 저장된다. 이 pool 에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 read.. 2022. 3. 24.
사무실 내 전력량 예측 - (2) 2022.03.15 - [프로젝트] - 사무실 내 전력량 예측 (1) 사무실 내 전력량 예측 (1) 2주간 인턴을 하게 된 회사에서 작은 프로젝트를 진행했었다. 주제는 사무실에서 사용되고 있는 전력량을 예측하는 프로젝트! 사무실에서 사용하고있는 전기를 측정해둔 데이터가 있었고 이를 studydaily.tistory.com 결측치 처리하기 그 후, 데이터의 결측치를 확인해 보았다. train.isna().sum() 가장 중요한,, 종속변수 meterage에 결측치가 있었다,,! 종속변수의 결측치를 어떻게 처리할까 많은 고민을 했다. 어디에서 결측치가 있는지 먼저 확인을 해보았다. train[train['meterage'].isnull()] ' 왜 저기에 결측치가 있을까? 이 결측치를 어떻게 처리하지? ' .. 2022. 3. 24.
사무실 내 전력량 예측 (1) 2주간 인턴을 하게 된 회사에서 작은 프로젝트를 진행했었다. 주제는 사무실에서 사용되고 있는 전력량을 예측하는 프로젝트! 사무실에서 사용하고있는 전기를 측정해둔 데이터가 있었고 이를 활용해 앞으로의 전력량을 예측하는 프로젝트였다. 시계열 데이터를 실제데이터로 활용해 보는 것은 처음이라 설레었다,,! 먼저, 1. 언제부터 언제까지의 데이터로? 2. 언제의 데이터로 확인해볼 것인가? 를 정했다. DATA SET : 2개월(=61일=1464시간) 2개월 정도의 데이터를 받았고, 처음에는 Train과 Test data를 어떻게 나누어야 할지 고민스러웠다. 왜냐하면 시계열 데이터였기 때문! 시계열 데이터를 나누는 방법을 많이 탐색해보았고 아래와 같은 방법이 있었다. 시계열 데이터의 경우 랜덤성을 부여하면 안 되고.. 2022. 3. 15.
Pytorch vs Tensorflow > 현재 많은 연구자들의 논문에서 Tensorflow 보다 Pytorch 관련 논문의 비율이 앞도적으로 늘어나고 있음 > 전체 논문에서도 Torch가 Tensorflow보다 많은 비율을 차지하고 있는 추세 Simplicity •numpy와 유사하고 매우 pythonic하고 파이썬 환경 시스템과 쉽게 통합할 수 있다. •Tensorflow에서는 debugging 하기 굉장히 까다롭다. Great API •대부분 Tensorflow보다 Pytorch를 더 선호한다. •왜냐하면 tensorflow에서는 많은 변경이 있었다. (layers -> slim -> estimators -> tf.keras) Performance •PyTorch의 동적 그래프는 최적화의 기회를 엄격히 줄여준다는 사실에도 불구하고, Py.. 2022. 3. 15.
프로세스와 스레드의 차이 프로세스(Process)란? 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것을 말한다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 한다. 구체적으로 살펴보면 프로세스는 함수의 매개변수, 복귀 주소와 로컬 변수와 같은 임시 자료를 갖는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함한다. 또한 프로세스는 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함한다. 프로세스 제어 블록(Process Control Block, PCB) PCB 는 특정 프로세스에 대한 중요한 정보를 저장 하고 있는 운영체제의 자료구조이다. 운영체제는 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB 를 생.. 2022. 3. 14.