일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 브루트포스
- BF
- OS
- CS
- 코딩테스트
- 알고리즘
- 코테
- 투포인터
- backtracking
- 백트래킹
- python3
- Github
- Virtual Memory
- 1일1솔
- 재귀함수
- Loss
- dfs
- 프로그래머스
- 파이썬
- Algorithm
- 머신러닝
- 완전탐색
- 정렬
- 백준
- Python
- two pointer
- 신나는함수실행
- sort
- ML
- 재귀
- Today
- Total
목록전체 글 (56)
이것저것 공부 기록하기
클라우드 컴퓨팅의 여러 서비스 모델 Cloud Computing이란? 정리 클라우드 컴퓨팅은 서로 다른 물리적인 위치에 존재하는 컴퓨터들의 리소스를 가상화 기술로 통합해 제공하는 기술을 말합니다. 예를들면 개인용 컴퓨터나 기업의 서버에 개별적으로 저장해 두었던 프로그램이나 문서를 클라우드(대형 컴퓨터)에 저장하고 웹 브라우저 등 필요한 어플리케이션을 구동해 원하는 작업을 수행할 수 있는 사용자 중심의 컴퓨터 환경을 말합니다. 예시 네이버 오피스, Google DOCs(Google), Work Space(Microsoft), Acrobat(Adobe) 등등이 여기에 해당합니다. 가상화와 클라우드 컴퓨팅의 차이 정의 쉽게 정의하면 가상화는 기술이고 클라우드는 방법론 입니다. 가상화 가상화는 우리가 쓰던 VM..
Segmentation 기법 가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트(Segment)로 분할 페이징 기법에서는 가상 메모리를 같은 크기의 블럭으로 분할 ex) x86 리얼모드 CS(Code Segment), DS(Data Segment), SS(Stack Segment), ES(Extra Segment)로 세그먼트를 나누어 메모리 접근 세그먼트 가상주소 v = (s,d): s는 세그먼트 번호, d는 블럭 내 세그먼트의 offset(변위) 물리주소 계산방식은 페이징 시스템과 동일 Segmentation과 Paging Process 비교 세그멘테이션은 크기가 다른 segment 단위별로 물리 메모리에 로딩 페이징은 스택이든 힙이든 공유라이브러리든 이런 거 상관없이 그냥 일괄적으로 4KB씩 쪼개..
페이징(paging) 개념 크기가 동일한 페이지로 가상 주소 공간과 이에 매칭하는 물리 주소 공간을 관리 하드웨어 지원이 필요 Intel x86시스템(32bit) CPU에서는 사이즈 단위를 4KB, 2MB, 1GB 지원 리눅스에서는 4KB로 paging 페이지 번호를 기반으로 가상 주소/물리 주소 매핑 정보를 기록/사용 페이징 시스템(paging system) 실질적인 예를 기반으로 페이징 시스템에 대해 알아보자. 프로세스(4GB)의 PCB(Process Control Block)에 Page Table 구조체를 가리키는 주소가 들어있음 Page Table에는 페이지 각각의 번호 별로 가상주소와 그에 해당하는 물리 메모리 주소를 매핑해놓은 정보가 있음 페이지 테이블은 페이지가 엄청 많으니까 당연히 길다. ..
가상 메모리(Virtual Memory System) 배경 실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있다. 예를 들어, 리눅스는 하나의 프로세스가 무조건 4GB의 영역을 갖는다. 통상 메모리는 8GB? 16GB? 32GB 정도 되니까 프로세스가 통째로 다 올라가게 되면 프로세스를 각각 2개,3개,4개 정도밖에 실행하지 못하게 된다. 폰노이만 구조 기반이므로, 모든 코드는 메모리에 반드시 있어야 한다. 그 메모리에서 코드를 한 줄, 한 줄 가져와서 CPU가 실행을 한다. 따라서 메모리와 프로세스의 dependency가 크다. 그런데 멀티프로세싱이나 멀티태스킹의 장점은 프로세스를 여러 개 실행시킬 수 있다는 건데... 어떻게 하면 적은 메모리에서 많은 프로세스를 실행시킬 수 있..
프로세스(Process) 란? 실행 중인 프로그램은 프로세스라고 함 프로세스 : 메모리에 올려져서 실행 중인 프로그램 코드 이미지(바이너리) : 실행 파일 ex) ELF format 프로세스라는 용어는 작업, task, job 이라는 용어와도 혼용되어 사용됨 여기서 주의해야 할 점은 응용 프로그램은 프로세스가 아니라는 점 (= 응용 프로그램은 여러 개의 프로세스로 이루어질 수 있다. 하나의 응용 프로그램은 여러 개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수도 있음 간단한 C/C++ 프로그램을 만든다면 하나의 프로세스라고 할 수 있음 여러 프로그램을 만들어서 서로 통신하면서 프로그램을 작성할 수도 있음 (IPC 기법) 스케쥴러와 프로세스 스케쥴러는 프로세스 실행을 관리함 스케쥴링 알고리즘 목표에 ..
공부용으로 다른 repository를 fork에서 사용하려는데 fork로는 해당 repository를 private하게 볼 수가 없었다. 그저 나는 공부용으로 보고 싶을 뿐인디?! 그래서 setting 들어가면 github에서 친절하게 이걸 private하게 보고 싶으면 fork하지 말고 mirroring하라고 Duplicating a repository 링크로 안내해준다. Duplicating a repository - GitHub Docs To duplicate a repository without forking it, you can run a special clone command, then mirror-push to the new repository. Before you can duplicate ..
실제로 이 세가지 함수에 대해 큰 차이를 두지 않지만, 미묘한 차이가 존재합니다. 1. Loss Function Loss Function은 single data set을 다룹니다. 2. Cost Function Loss Function의 합, 평균 에러를 다룹니다. 즉, single data set이 아니라 entire data set을 다룹니다. 그냥 순간순간의 loss를 판단할 땐 loss function을 사용하고 학습이 완료된 후에는 cost function을 확인하면 될 것 같습니다. 3. Objective function 모델(함수)에 대하여 우리가 가장 일반적으로 사용하는 용어로서 최댓값, 최솟값을 구하는 함수를 말합니다. 애초에 cost function과 loss function 모두 비용..
programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 n..