본문 바로가기

전체 글128

중심극한정리 (Central Limit Theorem)(feat. bagging, bootstrap) 1. 중심 극한 정리란? 내부 시스템을 알 수 없는 모집단 A에서 크기 \(n\)의 표본 \(k\)개 \((k_1, k_2, ..., k_N)\)를 무작위 복원 추출할 때, \(n\)과 \((k_1, k_2, ..., k_N)\)가 충분히 크다면 각 표본 평균의 분포 (sampling distribution of sample mean)는 정규 분포 (normal distribution)에 근사한다는 내용의 정리다. 이를 확률 개념으로 얘기해보면 독립 사건인 확률 변수들의 평균 분포가 정규 분포에 수렴한다는 내용이다. 중심 극한 정리를 통해 모집단 A의 각 사건 발생 확률은 정규 분포를 따르는지 알 수 없지만, 모집단 A에서 추출된 표본 \(K\)의 평균 분포를 바탕으로 하는 새로운 모집단 B를 만듦으로서.. 2022. 2. 2.
스케줄러 본론으로 들어가기에 앞서 프로세스 스케줄링은 다중 프로그래밍과 시분할과 연관된다. 다중 프로그래밍 시스템 어떤 프로세스를 수행하다 입출력이 발생하면 해당 입출력이 처리되는 동안 CPU가 다른 프로세스를 수행하는 방식이다. 여러 프로세스 중 어떤 프로세스을 선택할지는 '스케줄링'을 통해 해결한다. 이는 적절한 정책을 통해 다음 프로세스를 결정해준다. 이러한 과정은 각 프로세스가 입출력이 발생할 때만 발생된다. 즉, 다른 프로세스로 작업이 이동되려면 하나의 프로세스가 입출력이 발생해야 한다. 다중 프로그래밍의 목적은 CPU 이용을 최대화하기 위하여 어떤 프로세스가 항상 실행 중이도록 하는데 있다. 시분할 시스템 시분할 시스템의 핵심은 '타임슬라이스'이다. 입출력 발생시에도 스케쥴링이 일어나지만 타임슬라이스에.. 2022. 1. 27.
운영체제란 무엇인가? OS란 무엇인가? 1. 개요 Operation System의 약자. 운영체제는 컴퓨터 하드웨어와 사용자 응용프로그램 사이에 위치하여 응용 프로그램이 하드웨어를 쉽게 사용할 수 있도록 해주고 전체적인 시스템의 효율을 극대화시키기 위해 하드웨어 및 소프트웨어 자원(resource)을 관리하는 프로그램들이라고 할 수 있다. 즉, 컴퓨터 시스템의 전반적인 동작을 제어하고 조정하는 시스템 프로그램들의 집합인 셈이다. 이 프로그램들은 하드웨어와 응용프로그램간의 인터페이스 역할을 하면서 CPU, 주 기억장치, 입출력장치 등의 컴퓨터 자원을 관리한다. 즉, 인간과 컴퓨터간의 상호작용을 제공함과 동시에 컴퓨터의 동작을 구동(booting)하고 작업의 순서를 정하며 입출력 연산을 제어한다. 또 프로그램의 실행을 제어하며 .. 2022. 1. 27.
프로세스와 스레드 단순히 코딩만 하던 지난날을 반성하며, 더 좋은 엔지니어가 되기 위해 기초부터 이해하며 정리해보려고 한다. 프로세스와 스레드는 좋은 엔지니어라면 반드시 이해해야 하는 개념 중 하나이다. 이 글을 통해 프로세스와, 스레드의 개념과 차이점을 이해해 보도록 하자. -목차- 1. 프로세스와 스레드에 대한 정의 1.1 프로그램 → 프로세스 1.2 프로세스 → 스레드 1.3 프로세스와 스레드의 차이 2. 멀티 프로세스와 멀티 스레드 3. 운영체제 관점에서의 스레드와 메모리 공유 4. 멀티 프로세스보다 멀티 스레드를 사용함으로 얻는 이점 1. 프로세스와 스레드에 대한 정의 먼저 프로세스와 스레드가 무엇인지 정의부터 살펴보자. 프로세스 : 운영체제로부터 자원을 할당받은 작업의 단위 스레드 : 프로세스가 할당받은 자원을.. 2022. 1. 26.
메모리 구조 (코드, 데이터, 힙, 스택 영역) 단순히 코딩만 하던 지난날을 반성하며, 더 좋은 엔지니어가 되기 위해 기초부터 이해하며 정리해보려고 한다. -목차- 1. 메모리 2. 코드(code)영역 3. 데이터(data) 역역 4. 힙(heap) 영역 5. 스택(stack) 영역 6. 오버 플로우 7. 코드 예시 1. 메모리 위 그림과 같이, 프로그램이 실행되기 위해서는 운영체제(OS)가 프로그램의 정보를 메모리에 로드 해야 한다. 프로그램의 실행은 두가지 중요한 의미를 가진다. 파일 시스템에 존재하던 실행파일이 메모리에 적재된다는 의미 프로그램이 CPU를 할당받고 명령을 수행하고 있는 상태 파일 시스템에 있는 실행 파일이 메모리에 적재될 때, 실행파일 전체가 메모리에 올라가지 않는다. 일부분만 메모리에 올라가고 나머지는 디스크의 특정역역인 스왑 .. 2022. 1. 26.
Programmers - 호텔 방 배정[파이썬(python)] 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/64063 코딩테스트 연습 - 호텔 방 배정 programmers.co.kr 문제 설명 "스노우타운"에서 호텔을 운영하고 있는 "스카피"는 호텔에 투숙하려는 고객들에게 방을 배정하려 합니다. 호텔에는 방이 총 k개 있으며, 각각의 방은 1번부터 k번까지 번호로 구분하고 있습니다. 처음에는 모든 방이 비어 있으며 "스카피"는 다음과 같은 규칙에 따라 고객에게 방을 배정하려고 합니다. 한 번에 한 명씩 신청한 순서대로 방을 배정합니다. 고객은 투숙하기 원하는 방 번호를 제출합니다. 고객이 원하는 방이 비어 있다면 즉시 배정합니다. 고객이 원하는 방이 이미 배정되어 있으면 원하는 방보다 번호가 크면서 비어.. 2022. 1. 25.