Computer Science

    [JavaScript] 화살표 함수

    이 글은 ko.javascript.io의 화살표함수 기본 편을 참고하였습니다. 화살표 함수 함수 표현식으로 완벽하게 함수를 표현할 수도 있지만, 화살표 함수를 사용하면 더욱 간결하고 단순한 문법으로 함수를 표현할 수 있다. let sum = (a, b) => a + b; 위와 같이 표현하면 sum 이라는 함수는 a와 b를 인자로 받고, a + b 라는 표현식을 평가하고 그 결과를 반환한다. 위의 화살표 함수를 원래 함수 표현식으로 나타내면 아래와 같다. let sum = function(a, b) { return a + b; }; 인수가 하나밖에 없으면 인수를 감싸는 소괄호를 생략할 수도 있다. 위의 경우에는 a, b의 두 인자를 가지고 있어 생략할 수 없지만 아래와 같은 예를 보자. let double..

    [ML] 선형회귀(Linear Regression)

    본 내용은 ML GDE 박해선 님이 쓰신 [Do it 딥러닝 입문]을 참고하였습니다. 선형회귀를 많이 접해보았고 원리도 익숙하지만 이 Do it 책은 모델을 직접 코딩해보고 그 원리를 익힐 수 있어 되게 도움이 많이 될 거라 생각했다. 먼저 선형회귀란 어떠한 데이터가 주어졌을 때, 그 데이터를 가장 잘 나타내는 하나의 선형식을 모델링하는 것이다. 이때, 선형 모델을 모델링하고자 한다면 이 데이터와 타겟 간의 선형관계가 있다는 사실을 유추해내거나 가정을 하고 하는 것이다. 물론 데이터와 타겟 사이에는 선형적인 관계가 없을 수도 있는 것이다. 또한 선형회귀는 supervised learning의 일종으로 데이터에 대한 타겟(target)이 주어진다. 이번에 사용할 데이터는 사이킷런의 당뇨병 환자 데이터다. ..

    [운영체제] Project #1

    본 내용은 부산대학교 정보컴퓨터공학부 안성용 교수님의 [운영체제] 수업의 과제 내용을 참고하였습니다. System call 이란? User mode 에서 Kernel mode로 접근하게 해주는 interface이다. Trap Handling Process 아래의 그림을 보자. Process P는 user mode이므로 자기 자신의 memory만을 볼 수 있다.(자기 자신의 address space) 이 때, Process P가 kill() system call을 호출했을 때를 생각해보자. xv6 에서는 eax 레지스터를 이용해서 system call number를 전달받게 설계되어있다. 이 때 알아둬야 할 사항은, system call 또한 trap의 한 종류라는 것이다. 우측의 초록색 글자로 trap-..

    [운영체제] Smaller Tables -Page Directory

    본 내용은 [Operating Systems : Three Easy Pieces]를 참고하였습니다. paging도 좋고, page table도 좋고 다 좋다. 근데 한가지 문제점이 있다. 아래의 예를 보자. 32-bit address space에서 Page 하나의 크기가 4kB이고, page table entry 가 4-byte 라고 하자. 그렇다면 page 의 개수는 2^32 / 2^12 = 2^20 = 1M 개가 된다. page table entry 하나당 4-byte이므로 page table size 는 4MB 가 된다. 그런데 process 하나 당 page table 을 위해 이렇게 큰 메모리를 차지한다면, 실제로는 정말 많은 양의 메모리가 필요할 것이다. page의 크기를 4KB에서 16KB로..

    [운영체제] 제한적 직접 실행(Limited Direct Execution)

    본 내용은 [Operating Systems : Three Easy Pieces]를 참고하였습니다. OS는 물리적인 CPU를 공유하고 싶어하는데 이 때 사용되는 개념이 time sharing이다. Problem 1 : Restricted Operation 만약 프로세스가 disk의 정보를 받으려 하거나, CPU와 memroy와 같은 resource를 접근하려 한다면 보안과 안정성에 큰 문제가 생길 수 있다. 해결? --> User mode와 Kernel mode로 나눈다. - User mode : Application들은 hardware resources에 완전한 접근을 할 수가 없다.(제한됨) - Kernel mode : OS 는 모든 resource 들에 대해서 접근을 할 수가 있다. 이 때 나오는 ..

    [운영체제] 프로세스(Process)와 가상화(Virtualization)

    본 내용은 [Operating Systems : Three Easy Pieces]를 참고하였습니다. 여기 하나의 복숭아가 있다고 해보자. 나는 이 복숭아를 A, B, C 세 명에게 공유를 해주려고 한다. 문제는, 내가 이 복숭아를 세 명의 사람에게 공유하면, 자기 뿐만 아니라 또 다른 사람이 같은 복숭아를 공유한다는 사실에 A, B, C 각자는 불쾌해할 수도 있다. 요지는, 그들이 "각각 자신만의 복숭아를 지급받았다고 생각하도록 해야한다는 것"이다. 여기서의 복숭아가 바로 CPU(혹은 메모리)이고, A, B, C는 프로세스가 된다. 즉, CPU또는 메모리를 프로세스 A, B, C가 각자가 혼자 소유하고 사용하고 있다고 여기도록 하는 것이다. 그렇다면, 실제로는 모두가 이 복숭아를 공유하고 있는데, 어떻게..