컴퓨터과학 61

[Memory management] Paging

이전 글 2024.05.01 - [IT/컴퓨터구조, 운영체제] - [Memory management] Memory virtualization, Dynamic relocation, Segmentation [Memory management] Memory virtualization, Dynamic relocation, Segmentation💡Memory virtualization & Address Space - for Abstraction OS는 physical memory를 virtualize하여,각 프로세스가 전체 메모리를 전부 사용하는 것처럼 보이게 한다. Virtual address를 Physical address로 translate하는 것은 OSintoky.tistory.com 💡3. Paging..

[TF-IDF(Term Frequency-Inverse Document Frequency)] 계산 과정, 강점

TF-IDF의 계산 과정 ✅DTM(Document-Term Matrix): 각 문서들 (행)에서 각 단어들 (열)이 등장한 횟수가 담긴 행렬 여기서 문서를 d, 단어를 t, 문서의 총 개수를 n이라고 하겠다. 그러면... ✅tf(d,t): 특정 문서 d에서의 특정 단어 t의 등장 횟수. (= DTM의 각 셀의 값) ✅df(t): 특정 단어 t가 등장한 문서의 수. ✅idf(t): df(t)에 (대략) 반비례하는 수. ✅TF-IDF: TF와 IDF를 곱한 값.  TF-IDF의 강점 DTM에 비해 TF-IDF는 각 단어의 중요성도 반영하여 처리한다는 강점이 있다.TF의 역할: 어떤 단어가 특정 문서에서 많이 등장했다면 가중치를 높혀줌IDF의 역할: 어떤 단어가 많은 문서에서 등장했다면 가중치를 낮춰줌 ∵ d..

[Naive Bayes Algorithm] 원리, 종류, 주의사항

Naive Bayes Algorithm의 원리 E2가 참일 때, E1도 참일 확률 (즉, 조건부 확률)은 아래와 같다. 위 원리를 이용하여,feature X가 만족되었을 때, class Ck일 확률은 아래와 같다.  이때, 보통 이 feature는 하나가 아니라 여러 개이므로, 이를 반영하면 아래와 같다.             eg) 날씨&온도&습도&바람에 따라 사람들이 테니스를 칠지/안칠지 예측하는 문제  여기서, Naive Bayes Algorithm은 각 feature가 독립적이라고 가정하므로, 위 식은 아래와 같이 바꿀 수 있다.아래가  Naive Bayes Algorithm의 최종 공식이다.   Naive Bayes Algorithm의 종류 ✅Gaussian Naive Bayes변수가 conti..

[Memory management] Memory virtualization, Dynamic relocation, Segmentation

💡Memory virtualization & Address Space - for Abstraction OS는 physical memory를 virtualize하여,각 프로세스가 전체 메모리를 전부 사용하는 것처럼 보이게 한다. 이를 통해 process 간의 isolation을 보장하며, time과 space 면에서 메모리 관리의 효율이 높아진다.  💡1. Dynamic Relocation: HW base  프로세스 하나가 allocation의 unit이다.  ✅Address translationphysical address =  해당 프로세스의 base + virtual address 단, 0 ≤ virtual address  프로그램이 실행을 시작하면, 이 프로세스를 physical memory의 ..

[운영체제란] 운영체제의 역할, HW의 support

운영체제의 역할✅Abstact machinehide underlying details API 제공, system calls✅Resource manager각 application에 시간적/공간적 공유 자원을 allocate    시간적: CPU(app간), network    공간적: memory(app간), disk(user간)한정적 자원의 사용을 효율적으로.   overhead 최소화✅protectionapplication 간에 서로서로 보호 OS 보호 hardware에의 직접적 접근 방지  운영체제를 위한 HW support ✅app이 실행되는 원리OS 실행 시작됨이 OS의 코드는 메모리의 어딘가에 들어감OS의 instruction이 처리됨OS는 사용자 입력을 받아 특정 app을 인식함OS는 실행하려..

[Scheduling in multiple CPU] SQMS, MQMS, CFS, O(1), BFS

Cache Affinity프로세스가 가능한 한 하나의 CPU에서만 실행되게 하는 것 -> 해당 프로세스의 state가 이미 그 CPU의 cache에 남아있으므로, 다음 번에 프로세스가 실행될 때 훨씬 빨라진다. 만약 cache에 해당 프로세스의 state가 없다면, main memory에서 가져와야 하는데, 이것은 cache에 비해 매우 느림. 💡scheduling 방식✅SQMS: Single queue Multiprocessor Scheduling스케줄되어야 하는 job들이 한 queue에 전부 들어가 있다.   단점 - 단일 queue가 여러 CPU에게 공유되어야 하므로 locks가 필요한데, 이 locks는 성능을 크게 떨어뜨리고 scalability가 낮다.- 프로세스들은 매번(매 time sl..

[Scheduling in single CPU] FIFO, SJF, STCF, RR, MLFQ, Lottery, Stride, CFS

💡Scheduling이란?멀티프로그래밍 시스템 (: 실행이 준비된 프로세스가 두 개 이상)에서, OS의 일부인 scheduler는 scheduling 알고리즘을 이용해 무엇을 실행할지 결정한다.🚩스케줄러는 아래와 같이 context switch가 일어나는 모든 순간 invoke되어 다음 실행할 프로세스를 결정한다.   프로세스 생성/종료 후   I/O에서 프로세스 block   I/O 인터럽트 발생    timer 인터럽트 발생 (preemtive한 경우)   ✅스케줄링을 평가하는 metricsturnaround time = 완수된 시점 - 도착한 시점 response time = 처음으로 실행된 시점 - 도착한 시점 fairness = first job이 완수되는 시간 / second job이 완수..

[Synchronization] Condition Variables

💡Condition variables스레드가 실행을 하면 안되는 상황(특정 조건 미충족 등)일 때 자기 스스로를 넣어놓는 queue이다. ✅스레드는 condition variable에 대해 아래와 같은 동작을 수행할 수 있다. - wait(condition_variable, lock): 실행하면 안되는 상황일 때, 스레드 자신의 lock을 release하고 스스로를 어떤 queue에 넣음- signal(condition_variable): 스레드 자신의 state를 바꾸면서, waiting하던 다른 스레드 하나를 깨움 ✅condition variable을 이용하기 위해서는 아래 요소도 필요하다.- state variable: child 스레드가 일을 끝냈는지 여부- locks: state variabl..