CS 6

빅데이터 2주차 내용 정리

3.1 근접 이웃 탐색의 응용 자카드 유사도 (Jaccard Similarity): 교집합의 상대적인 크기로 관찰되는 집합의 유사성 집합 S와 T가 있으면, 이 둘의 자카드 유사도는∣S∩T∣/∣S∪T∣| 로 정의한다. (둘의 자카드 유사도는 SIM(S, T)로 나타내기도 함.) 일반적으로 웹이나 기사 모음 같은 말뭉치에서 유사한 문서들을 찾는 일은 자카드 유사도로 다루기 적합한 종류의 문제인데, 이는 문자 기반 유사성 (Character-level Similarity) 임에 유의하자. 즉, 의미가 유사한 것이 아닌 문자 자체의 유사도를 비교하는 것이다. (사용하는 예시: 표절, 미러페이지, 출처가 유사한 기사의 필터링) 단순히 글의 유사도만 걸러내는 것이 아니라, 협업 필터링 (Collaborative ..

Operating System Concepts 정리 - Ch.05

5.1 Basic Concepts CPU의 코어가 1개라고 하자. 이러면 당연히 한번에 하나의 태스크만 실행될 수 밖에 없다. 만약 순차적으로 모든 일이 진행된다고 해보자. 어... 그림에서 볼 수 있듯이 I/O 대기나 인터럽트가 생기게 된다고 해보자. 그걸 하나 하나 다 기다리려고 하면 뒤 태스크는 손가락만 빨 수 밖에 없고, 결국 효율성이 떨어질 수 밖에 없다. 당연히 효율성을 높이려면 이런 상황에 도래했을 때 태스크를 넘겨줘야 효율성을 높일 수 있을 것이다. CPU-I/O Burst Cycle 프로세스 실행은 CPU 실행과 입출력 대기의 사이클로 구성된다. 즉, 두 state 중 하나에 머물러 있다는 것이다. 프로세스 실행은 CPU Burst로 시작된다. 이어서 I/O Burst가 발생하고, 이어서..

CS/OS 2021.01.21

쓰레드에 레지스터가 있다?

쓰레드를 공부하다가 이런 의문이 들었다. 레지스터는 프로세스가 아닌, 프로세서에 있는것이 아닌가? 그런데 어떻게 쓰레드가 자신만의 레지스터를 갖고 있다고 하는 거지? (출처: Operating System Concepts 10e. Abraham Silberschatz 외) 당연히 레지스터는 프로세서가 갖고 있기 때문에, (아키텍쳐에 따라 레지스터의 수나 명칭이 달라지는건 필연적이겠죠?) 이 그림이 말이 안 된다고 생각해서 텍스트를 뚫어져라 쳐다봤다. A thread is a basic unit of CPU utilization; it comprises a thread ID, a program counter (PC), a register set, and a stack. It shares with other..

CS 2021.01.15

Operating System Concepts 정리 - Ch.04

4.1 Introduction Thread: CPU 이용의 기본 단위이다. 스레드 ID, Program Counter, Register 집합, 그리고 스택으로 구성된다. 당연히 스레드는 프로세스 내부에 존재하는 것이기 때문에, 같은 프로세스에 속한 다른 스레드와 Code Segment, Data Segment와 열린 파일, Signal과 같은 운영체제 자원들을 공유한다. 단일 스레드라면 당연히 왼쪽처럼 모든 자원을 홀로 소유하는 것 처럼 그려지겠지만, 멀티 스레드는 공유하는 자원과 본인이 보유하는 자원이 구분되기 떄문에 오른쪽으로 봐야 할 것 같다. 현대의 프로그램은 대부분 다중 스레드를 이용한다. (ex. 워드: 그래픽 표시 스레드, 입력 받는 스레드, 맞춤법 검사 스레드 등등...) 서버의 경우를 보..

CS/OS 2021.01.15

Operating System Concepts 정리 - Ch.03

3.1 Process Concept CPU의 활동은 무엇인가? → 시스템 마다 부르는 명칭이 다름. (일괄처리 시스템: job/시분할 시스템: task...) → 하지만 이런 것들은 꽤나 유사함 → 프로세스라고 부르자! 간단하게 보자면, 프로세스는 실행 중인 프로그램이라고 보면 된다. 그래서 프로그램 == 프로세스일까? 아니다. 프로그램은 디스크에 저장된 실행 파일 같은 것들이고, 이 파일이 메모리에 적재되어 실행이 되어야 프로세스라고 할 수 있다. 프로세스는 Program Counter와 Register를 갖고 있고, 메모리 상에서 다음과 같은 형태를 띄고 있다. (물론 일반적으로...) Text Section: 코드 Data Section: 전역 변수 Stack Section: 복귀 주소나 지역 변수..

CS/OS 2021.01.10

Operating System Concepts 정리 - Ch.02

최근에 OS 스터디를 하게 되었는데, 좋은 기회라고 생각하고 학습한 내용을 정리해 보았다. 노션에서 티스토리로 바로 업로드 해주는 기능이 있을 줄은 몰랐는데 써보니까 좋네... 2.1 Operating System Servies OS는 프로그램 실행 환경을 제공한다. 즉, 프로그램과 사용자에게 특정 서비스를 제공함으로써 프로그램이 정상적으로 실행될 수 있는 환경을 제공한다고 볼 수 있다. OS의 종류와 프로그램의 종류에 따라 제공하는 서비스는 달라질 수 있지만, 크게 다음과 같이 볼 수 있다. User Interface: 크게 CLI/GUI 구분. Program Execution: 프로그램을 메모리에 적재해 실행할 수 있도록 함. I/O Operation: 보안 문제 때문에 사용자나 프로그램은 직접 입출..

CS/OS 2021.01.02