[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기
반응형

분류 전체보기 495

[운영체제] RAID

RAID (Redundant Array of Independent Disks) 디스크 배열을 사용하는 대용량 저장장치 프로세서 속도, 메인 메모리 크기, 2차 저장소 등의 크기는 급속도로 발전했지만 입출력 전송률은 그렇지 못하여 요구하는 속도를 만족시킬 수 없다는 점에서 착안했다. 여러 디스크를 동시에 접근할 수 있는 디스크 배열로 입출력 처리량, 전송률을 개선한다. RAID에서 I는 원래는 Inexpensive라는 의미였지만 이 후 많은 RAID 시스템에서 값이 비싼 고성능 디스크를 사용하게 되면서 Independent로 수정되었다. 디스크 배열은 '데이터 스트라이핑'으로 병렬성을 이뤄 성능을 개선시킬 뿐 아니라, '중복성'으로 신뢰성도 향상시켜준다. 데이터 스트라이핑, 중..

[운영체제] 디스크 스케줄링

디스크의 구성 중심에는 스핀들(spindle)이 있어 시계방향으로 돌아간다. 용량이 큰 서버용 디스크는 면이 여러개이다. 여기서 면은 플래터(platter)라고 부른다. 이러한 플래터 상에는 섹터(sector)들이 모여 하나의 원을 형성하고, 이 원을 트랙(track)이라고 한다. 트랙이 안 쪽에 있든 바깥쪽에 있든 한 트랙의 섹터 수는 동일하다. 각 플래터 상의 동일한 트랙들을 통합해 실린더(cylinder)라고 부른다. 디스크가 입출력을 하는 단위는 섹터이다. 디스크에 읽기와 쓰기를 실행하는 헤드가 목표하는 섹터를 찾아가기 위해 디스크 암은 해당 트랙을 찾아가주고, 스핀들은 디스크를 회전시킨다. 일반적으로 하드디스크의 한 섹터 크기는 512바이트이다. 헤드를 움직여 특정 트랙의 특정 섹터를 찾아가 읽..

머신러닝 기초수학2 - 미분

머신러닝의 시작 머신 러닝의 시작은 함수만들기이다. 그래프의 점들을 하나로 표현할 수 있는 함수를 찾는다. (ex. y = ax + b) 보통 머신러닝에서는 기울기와 절편 등의 변수를 세타(θ1, θ2, ...)로 표현한다. 이러한 기울기와 절편의 값을 과거의 관측을 기반으로 조절해가면서 미래 예측에 가장 정확한 값을 찾아가는 것이다. 목적함수 모든 점을 다 지나는 그래프가 있다면 좋겠지만 이는 현실적으로 불가능하므로, 모든 점에서 생기는 오차가 가능한 작아지도록 하는 함수를 찾는 것이 우리의 목표이다. 이러한 오차의 합을 계산하는 함수를 목적함수라고 한다. 목적함수는 각 케이스의 예측치(앞서 결정한 함수이용)와 실제값의 차의 제곱을 모두 더하고, 거기에 1/2을 곱해준 것이다. 여기서 '1/2'은 결과..

[운영체제] 디스크 공간할당

디스크 공간할당 프로그램 파일, 데이터 파일, 디렉토리 파일 모두 파일이며, 파일은 저장장치에 블록 단위로 산재되어 저장된다. 이를 최대한 효율적으로 저장해야 파일 입출력의 속도를 높일 수 있다. 이처럼 디스크에 파일을 저장할 때 파일의 블록들의 배치를 결정하는 것이 디스크 공간할당이다. 디스크 공간할당은 연속 할당과 불연속 할당으로 나누어진다. 연속 할당 : 임의의 한 파일을 위해 디스크 내에 선형적으로 연속된 블록을 할당. 불연속 할당 : 임의의 한 파일을 위해 디스크 내에 산재된 블록을 연결해 할당, 블록이 디스크 내 어디에 있어도 액세스 가능. 불연속 할당을 구현하는 방법으로는 연결 할당, 색인 할당, 간접 색인이 있다. 간접 색인도 멀티레벨 색인과 혹합 색인으로 나누어진다. 연속 할당 연속할당 ..

[자료구조] Union find & an Application

본 게시글은 대학생이 수업을 듣고 내용을 정리한 것입니다. 따라서 완벽하지 않은 부분이 있을 수 있습니다. 아울러 본 게시글에 포함된 코드들은 대략적인 개념 이해만을 위해 작성된 것으로 완전하지 않은 코드임을 알려드립니다. Minimum Sparsing Tree 주어진 그래프에서 엣지들의 subset을 찾고 그 결과로 엣지 cost의 합이 최소인 '연결된' 그래프를 찾아라. 해당 그래프는 자연스럽게 트리가 된다. 이는 사이클이 없다. 싸이클이 있다고 가정하면 '엣지 cost 합 최소' 조건이 성립이 안되기 대문이다. 엣지는 '노드개수 - 1'일 것이다. 해당 질문에 대한 답은 그래프 형태에 따라 여러개일 수 있다. (유일하다는 것을 증명하기 위해서는 edge w..

[자료구조] Tree Traversal and Parsing

본 게시글은 대학생이 수업을 듣고 내용을 정리한 것입니다. 따라서 완벽하지 않은 부분이 있을 수 있습니다. 아울러 본 게시글에 포함된 코드들은 대략적인 개념 이해만을 위해 작성된 것으로 완전하지 않은 코드임을 알려드립니다. Traversal Traversal : 모든 노드를 특정 순서로 방문하는 것 여기서 '방문'이란 단순히 거치는 것을 넘어서 해당 노드에서 특정한 작업을 수행하는 것이다. Traverse (Node *D) { if (D==Null) return; // Visit(D); => Preorder traversal Traverse(D->Left); // Visit(D); => Inorder traversal Traverse(D->Right); // Visit(D); => Post..

[운영체제] 파일시스템

파일의 개념 파일 : 정보의 집합체. 정보란 비트, 바이트, 행, 레코드 등을 모두 포함한다. 파일 작성자나 사용자가 해당 정보를 정의한다. 파일은 보조기억장치에 저장되어 있고, 주로 프로그램파일 혹은 데이터 파일이다. 프로그램 파일 : 원시 프로그램(C,C++), 오브젝트(바이너리) 프로그램 데이터 파일 : 수를 포함해 문자 또는 ASCII 코드로 된 문자 혹은 숫자로 구성되어 있다. 내용 면에서는 텍스트 파일처럼 비정형화된 자유형식일 수도 있고, 데이터베이스처럼 엄격히 정형화된 형태일 수도 있다. 또한 동영상, 이미지, 소리 등 정해진 포멧을 따르고 있을 수도 있다. 어떤 파일이든 하드디스크와 같은 저장장치에 저장될 때 섹터 단위로 저장된다. 즉, 하나의 파일이 디스크 내 여러개의 섹터로 구성되는 것..

머신러닝 기초수학1 - 통계학

통계학 기초 수치 데이터의 수집, 분석, 해석, 표현 등을 다루는 수학의 한 분야 기술 통계학 : 연속형 데이터 / 범주형 데이터 추론 통계학 : 가설 검정 등의 방식으로 전체에 대한 추론을 하는 것 통계 모델링 : 데이터에 통계학을 적용해 변수의 유의성을 분석, 방대한 양의 데이터에 숨겨진 특징을 찾아내는 것. 여러 데이터를 하나의 수학적 모델로 나타낸다. (y = ax + b, 정규분포 등) 확률 분포 : 최빈값, 중앙값(정규분포에서는 중앙값이 최빈값과 동일), 평균(정규분포에서는 중강값,최빈값과 동일) import numpy as np from scipy import stats np.random.seed(0) data_A = np.random.randint(0,100,10000) data_B = n..

[자료구조] Priority Queue & Application

본 게시글은 대학생이 수업을 듣고 내용을 정리한 것입니다. 따라서 완벽하지 않은 부분이 있을 수 있습니다. 아울러 본 게시글에 포함된 코드들은 대략적인 개념 이해만을 위해 작성된 것으로 완전하지 않은 코드임을 알려드립니다. Priority Queue 내부 item들이 우선순위를 가진다. 보통 우선순위는 여러 기준이 있지만 최대한 Simple하게 설정해놓는 것이 학습에 용이하다. Queue에서 가장 우선순위가 높은 것이 나온다. (우선순위 변동은 없다.) 우선순위에 의해 정렬되어 있으면 : Del는 빠르지만, Insert는 느리다. 우선순위에 의해 정렬되어 있지 않으면 : Del은 느리지만, Insert는 빠르다. 어떤 자료구조를 활용해 구현할까 기본 BST를 제외한 AVL, 2-3, 2-3-4, Red-..

[자료구조] 2-3-4 Tree, B Tree, Red-Black Tree

본 게시글은 대학생이 수업을 듣고 내용을 정리한 것입니다. 따라서 완벽하지 않은 부분이 있을 수 있습니다. 아울러 본 게시글에 포함된 코드들은 대략적인 개념 이해만을 위해 작성된 것으로 완전하지 않은 코드임을 알려드립니다. 2-3-4 Tree 2-3 트리의 확장판이다. Node key 값의 공간이 커진다. 모든 leaf가 같은 거리에 있다. 2-3-4 트리에 N개의 key가 있을 때 Height는 O(logN)이다. 해당 트리는 2-3 트리와 달리 새로운 key값이 들어오지 않아도 key 값이 3개인 상태에서 split이 가능하다. 트리에서는 새로운 키 값이 추가될 때 [노드내부 작업 - 링크 따라가기 - 새로운 노드 및 링크 생성]의 과정이 필요했다. 이 때 각 작업의 비용은 현재 작업이 어디에서 진행..

반응형