전체 글 484

[운영체제] 프로세스

프로세스가 fork()를 통해 새로운 자식 프로세스를 생성하면, 자식 프로세스는 독립적으로 실행됩니다. 이때 자식 프로세스가 종료될 때까지 부모 프로세스는 wait() 시스템 호출을 통해 자식의 종료 상태를 수거할 수 있습니다.하지만 부모 프로세스가 wait()을 호출하지 않으면, 두 가지 상황이 발생할 수 있습니다.1. 좀비(Zombie) 프로세스자식 프로세스가 종료되었지만, 부모 프로세스가 wait()를 호출하지 않으면 자식의 종료 상태(exit status)가 커널에 남아 있게 됩니다.자식은 종료되었지만, 부모가 wait()를 호출하지 않아 프로세스 테이블에서 완전히 제거되지 않고 남아 있는 상태를 좀비 프로세스라고 합니다.좀비 프로세스는 리소스를 거의 소비하지 않지만, 너무 많아지면 프로세스 테이..

[운영체제] 스케쥴러

ShortTerm vs LongTerm📌 프로세스 스케줄링과 스케줄러 종류운영체제(OS)는 Ready Queue 에 있는 프로세스를 끄집어내어 CPU의 자원을 할당합니다.단, 프로세스를 끄집어낸다고 해서 바로 실행되는 것은 아닙니다.CPU 자원이 실제로 할당될 때 비로소 프로세스가 실행됩니다.이러한 CPU 자원 할당과 프로세스 실행 관리는 운영체제의 역할입니다.📌 스케줄러 종류운영체제에서 프로세스를 관리하는 스케줄러는 Short-Term, Long-Term, Medium-Term 3가지로 나뉩니다.Short-Term Scheduler (단기 스케줄러)Ready Queue에서 프로세스를 선택하여 CPU에 할당대부분의 운영체제에서 "스케줄러" 라고 하면 Short-Term Scheduler를 의미짧은 간..

[운영체제] 프로세스의 관리

프로세스 개념운영체제에서 특정 프로그램을 더블 클릭하여 실행할 때, 해당 프로그램은 프로세스라고 불립니다.시분할 시스템 (Time-Shared Systems)시분할 시스템(Time-Shared Systems)은 여러 개의 프로그램을 동시에 실행할 수 있도록 진화한 시스템으로, **멀티태스킹(Multitasking)**이라고도 합니다. 이는 운영체제가 여러 작업을 스와핑(Swapping) 하면서 실행하는 방식으로, 사용자가 여러 작업을 번갈아 수행하는 것과 유사합니다.프로그램과 프로세스프로세스는 실행 중인 프로그램을 의미합니다. 반면, 프로그램은 실행되지 않은 상태로 존재하는 수동적인 개체입니다. 프로그램이 실행되면 Active(활성화) 상태가 되며, 운영체제로부터 메모리 공간을 할당받아 실행됩니다.프로세..

[딥러닝] 기본적 개념 정리

Training : 파라미터 학습을 위한 데이터 Test : 최종적으로 학습된 모델 테스트용 데이터Validation : 하이퍼파라미터 선택을 위한 데이터 Test 데이터는 학습 때 사용하면안됨, 처으보는 data에 대해서 어떻게 잘하는 지 봐야 하기 떄문 Epoch을 축으로 x 봤을 때 loss는 계속 내려갈 것입니다. 내려가는 것이 무조건 좋은 상황은 아닌 것이 머신이 반복학습을 많이 하면 외워서 풀면서 원리를 잊어버리게 될 수 있기 때문입니다.  그래서 테스트에 대한 에러를 생각해본다면 내려가다가 다시 올라갈 수도 있다는 것입니다. 그래서 존재하는 것이 모의적으로 테스트를 해보기 위한 것이 Validation 데이터입니다. validation 데이터 가장 잘할 때 학습을 멈추면 얼추 맞습니다.   ..

[Pytorch] BMM, Layer, Activation Function

Batch Matrix Multiplication(BMM)같은 개수의 행렬 쌍들에 대해 병렬로 행렬 곱 실행(N,n,h)X(N,h,m) = (N,n,m) Linear LayerLinear Layer란?Input과 Output을 weight로 연결하는 Layer로 각 원소들을 모두 연결하는 형태이기 때문에 Fully Connected Layer라고도 부름  Activation FunctionLinear Layer의 결과를 다음 layer에 전달할 때 사용하는 함수로, 비선형 함수를 사용 sigmoid, tanh, ReLU 등이 있음 Softmax 함수activation function으로도 쓸 수 있고 자주 사용하는 함수 중 하나입니다. 결과 classification을 할 때 output을 뽑을 때 확률..

[알고리즘] 그룹액티비티2

1번int fun1(int x, int y){ if (x > y) return 0; // x가 y보다 크면 재귀 종료 return y + fun1(x, y - 1); // y를 더하면서 y-1로 재귀 호출}기본 종료 조건if (x > y) 조건을 만족하면 0을 반환하면서 재귀를 종료합니다.재귀 호출return y + fun1(x, y - 1);y를 결과에 더하고, y-1을 인자로 넘겨서 재귀 호출을 합니다.즉, y, y-1, y-2, ..., x까지 모두 더하는 방식입니다.x부터 y까지의 정수 합을 계산하는 것입니다.  2번 /* Assume that n>=1 */int fun2(int n){ if (n == 1) return 0; else return 1 + fun2(n ..

[알고리즘] 멱집합

임의의 집합 data의 모든 부분집합을 출력하라. 멱집합을 구하는 것에는 몇가지 알려져있는 방법이 있습니다. recursion을 이용해서 해결하는 방법은 가장 간명한 알고리즘 중 하나입니다.  Powerset{a,b,c,d,e,f}의 모든 부분집합을 나열하려면 a를 제외한 {b,c,d,e,f}의 모든 부분집합들을 나열하고 {b,c,d,e,f}의 모든 부분집합에 {a}를 추가한 집합들을 나열 {b,c,d,e,f}의 모든 부분집합에 {a}를 추가한 집합들을 나열하려면 {c,d,e,f}의 모든 부분집합들에 {a}를 추가한 집합들을 나열하고 {c,d,e,f}의 모든 부분집합에 {a,b}를 추가한 집합들을 나열  powerSet(S)IF S IS AN EMPTY SET print nothing;else let t..

[데이터베이스] 시스템의 구성

데이터베이스 시스템의 구성요소데이터베이스-스키마 + 실제 데이터데이터베이스 관리시스템 DBMS데이터베이스 언어데이터베이스 사용자데이터베이스 관리자데이터베이스 컴퓨터데이터베이스 도구 스키마데이터베이스스키마 + 데이터 스키마DB내의 데이터의 구조, 관계, 제약 조건에 대한 명세(Specification) 관점에 따라 스키마는 달리 보여질 수 있음응용프로그램 관점조직 전체의 관점물리적 저장 장치 수준의 관점3단계 스키마 구조외부 스키마-개개의 사용자 또는 으용프로그램 수준의 스키마-서브 스키마라고도 함 개념 스키마-조직 전체 수준의 스키마-외부 스키마들이 통합된 것-일반적으로 스키마는 개념 스키마를 의미 내부 스키마-개념 스키마의 저장 구조를 정의 외부 단계외부스키마1, 외부스키마2, 외부스키마N 개념 단계개..

파이토치의 구성요소

파이토치의 구성요소-torch : 메인 네임스페이스-torch.autograd : 자동 미분 기능 제공 라이브러리-torch.nn : 신경망 구축 데이터 구조 및 레이어-torch.multiprocessing : 병렬처리 기능 제공-torch.optim : SGD 중심 파라미터 최적화 알고리즘 제공-torch.utils : 유틸리티 기능 제공-torch.onnx : 서로 다른 프레임워크 간 모델 공유 Tensors데이터 표현을 위한 기본 구조로 텐서 사용텐서는 데이터를 담기 위한 컨테이너로서 일반적으로 수치형 데이터 저장넘파이의 ndarry 생각하면 됨GPU 사용 연산 가속 가능00 Tensor (Scalar) 1D Tensor(Vector) : Rank:1 Shape(3,) 2D Tensor(Matri..

딥러닝 연구의 초점

직관을 바탕으로 아이디어를 전개해야 한다. 사전 정보를 적절히 심어주는 것이 중요하다.  이를 통해 정보의 흐름을 원활하게 만들고 학습을 효율적으로 유도할 수 있다. 정보를 어떻게 엮을 것인가?CNN (Convolutional Neural Network): 위치가 가까운 픽셀들을 우선적으로 고려하고, 멀리 있는 정보는 정제하여 조합하는 방식으로 패턴을 학습한다.트랜스포머 (Transformer): 단어들 간의 관계 정보를 파악하여 번역과 같은 자연어 처리 작업을 수행한다. Skip Connection이란?불필요한 연산 과정을 생략하고, 중요한 정보만 바로 전달하는 구조를 의미한다. 수식적으로 표현하면, 입력값을 , 함수 를 적용한 결과를 라 할 때, 기존 네트워크에서는 형태로 연산이 이루어진다. 하지만..