본문 바로가기

전체 글

(99)
online

FandPROG_

> CS Student  ·  Problem Solver  ·  Data Analyst

알고리즘 문제 해결, 자료구조 정리등의 관심이 있는 사람의 개발 블로그입니다. C++, Python, ML등의 학습 내용을 함께 정리합니다.

fandprog.sh
$ cat profile.json
{
  "name": "FandPROG",
  "focus": "PS + ML",
  "Most Used Lang": ["C++", "Python"],
  "Hello world!"
}
$
👁️
Total Views
...
solved.ac · -solved
A
AtCoder
abor
...
GitHub Repos
tech-stack languages & tools
C C++ Java Python C# HTML CSS JavaScript
// categories
[운영체제 #5] CPU Scheduling이란? FIFO, SJF, RR까지 한 번에 정리 운영체제를 공부하다 보면이제 자연스럽게 이런 질문이 나오게 되어있다.> “여러 프로세스가 있으면 누구부터 실행하지?”지난 글에서Limited Direct ExecutionTimer interruptContext switch까지 봤다면> 이제 OS는 CPU를 언제든 뺏을 수 있는 상태 그 다음 단계는 바로 >“누구에게 CPU를 줄 것인가?” 이걸 결정하는 것이 바로 Scheduling이다.1. Scheduling이란 무엇인가정의부터 깔끔하게 잡고 가보자.>Scheduling = 여러 프로세스 중 어떤 것을 언제 실행할지 결정하는 것2. 스케줄링을 평가하는 기준좋은 스케줄러는 그냥 “잘 돌아간다”가 아니라> 기준이 있다.1) Turnaround TimeTurnaround = 완료 시간 - 도착 시간 > 얼마..
[운영체제 #4] Limited Direct Execution이란? CPU를 “통제하면서” 실행시키는 방법 운영체제를 공부하다 보면“프로세스를 실행한다”는 말은 익숙해지는데,정작- OS가 어떻게 CPU를 통제하면서 실행시키는지이 부분은 한 번에 잘 안 잡히는 경우가 많다.지난 글에서fork(), exec(), wait()를 통해프로세스 실행 흐름을 정리했다면,이번 글에서는 한 단계 더 들어가서- “OS가 CPU를 어떻게 나눠 쓰면서도 통제하는지”- Limited Direct Execution이라는 핵심 개념을 정리해보겠다.1. 문제: 프로그램을 그냥 실행하면 안 되는 이유가장 단순한 방법부터 생각해보겠습니다.- 그냥 프로그램을 CPU에 올려서 실행시키면?이걸 Direct Execution이라고 한다.즉,OS: 준비만 해줌CPU: 프로그램 그냥 실행 겉보기엔 좋아 보이지만,문제가 생긴다.→ 문제 1: 유저 프..
[운영체제 #3] fork(), exec(), wait()란? 프로세스 API 핵심 정리 운영체제를 공부하다 보면 프로세스가 무엇인지까지는 비교적 쉽게 이해되는데,정작 그 프로세스를 운영체제가 어떻게 만들고 실행하는지는 한 번에 잘 안 잡히는 경우가 많다.지난 글에서 프로세스의 개념, 생성 과정, 상태 변화를 정리했다면이번 글에서는 그다음 단계로 넘어가서운영체제가 실제로 프로세스를 만들고, 새 프로그램을 실행하고, 필요한 경우 실행 순서를 조정하는 방식까지 정리해보려고 한다.특히 이번 내용은 단순히 시스템 콜 이름 몇 개를 외우는 단원이 아니라쉘에서 입력한 명령어가 왜 실행되는지,출력 리다이렉션은 어떻게 가능한지,파이프는 어떤 원리로 동작하는지까지 연결되는 중요한 내용이다.이번 글에서는 fork(), exec(), wait()를 중심으로프로세스 API의 흐름을 입문자 관점에서 핵심만 정리해보..
[운영체제 #2] 프로세스란? 생성 과정과 상태 변화 한 번에 정리 운영체제를 공부하다 보면 가장 먼저 자주 만나게 되는 개념이 바로 프로세스(Process) 다.1편에서 운영체제가 어떤 역할을 하고, 왜 가상화·동시성·영속성이 중요한지를 정리했다면이번 글에서는 그중에서도 CPU 가상화의 핵심 단위라고 볼 수 있는 프로세스를 정리해보려고 한다.운영체제를 처음 공부할 때는 프로그램, 프로세스, 스레드 같은 말이 다 비슷해 보여서 헷갈리기 쉬운데이번 글에서는 우선 프로세스가 정확히 무엇인지, 그리고 운영체제가 프로세스를 어떻게 만들고 관리하는지를 입문자 관점에서 정리해보겠다.1. 프로세스란 무엇인가프로세스란?프로세스는 흔히 실행 중인 프로그램이라고 정의한다.여기서 중요한 건 프로그램과 프로세스는 완전히 같은 말이 아니라는 점이다.프로그램은 디스크에 저장된 정적인 파일이고,프..
[운영체제 #1] 운영체제란? 역할과 핵심 개념 한 번에 정리 운영체제를 처음 공부하면 “정확히 무슨 역할을 하는지”가 가장 먼저 헷갈립니다.이번 글에서는 운영체제의 기본 역할과 함께, 왜 가상화·동시성·영속성이 핵심 주제인지 입문자 관점에서 정리해 보겠습니다.1. 운영체제란 무엇인가- 운영체제?운영체제는 컴퓨터의 자원을 효율적이고 안전하게 관리하고, 프로그램 실행과 데이터 보존을 지원하는 핵심 시스템 소프트웨어이다.운영체제는 시스템이 정확(correctly)하고 효율적(efficiently)이게 동작하도록 해야한다. - 사용자와 하드웨어 사이의 역할 운영체제는 사용자프로그램과 하드웨어 사이를 이어주는 통로 역할을 하기도 한다.2. 운영체제를 왜 배우는가- 프로그램 실행의 관점 운영체제는 프로그램들을 쉽게 실행시켜주며, 프로그램들의 메모리를 공유할 수 있게하고, 프..
백준 7983 : 내일 할거야 문제 요약각 작업은 소요 시간과 마감일이 주어지고, 작업은 한번 시작하면 중단 없이 연속으로 수행해야 한다.이 때 오늘은 반드시 쉬는 상태에서 시작할 때, 모든 작업을 마감 내에 끝낼 수 있도록 하면서 내일부터 연속으로 놀 수 있는 최대 일수를 구하는 문제.결국 이 문제는 “언제부터 일을 시작하면 가장 늦게 시작하면서도 모든 과제를 마감 내에 끝낼 수 있는가?” 로 바꿀 수 있다.핵심 아이디어 문제의 핵심은 정해진 기한과 일을 연속되게 해야함에있다.연속으로 놀아야함으로, 일은 최대한 시작시간에서 먼 시간에 배치할수록이득이다.일반적으로 생각할때, 시작지점에서 가까운일만 고려하면 된다고 생각할 수 있으나, 21 67 8과 같은 반례가 존재할 가능성이 있다.그 전의 데드라인과 현재의 데드라인의 차이와 현재까지..
개인정보처리방침 개인정보처리방침FandPROG(이하 "블로그")는 이용자의 개인정보를 중요시하며, 「개인정보 보호법」을 준수하고 있습니다. 본 방침은 블로그 운영 과정에서 수집되는 개인정보의 처리 방식을 안내합니다.1. 수집하는 개인정보 항목 및 수집 방법본 블로그는 이용자가 댓글 작성 시 다음의 정보를 수집할 수 있습니다. 닉네임(이름) 이메일 주소 (입력 시) IP 주소 (자동 수집)또한 블로그 방문 시 서비스 운영을 위해 아래 정보가 자동으로 수집될 수 있습니다. 방문 일시, 서비스 이용 기록 접속 IP 정보, 쿠키, 브라우저 정보2. 개인정보의 수집 및 이용 목적수집된 개인정보는 다음의 목적으로만 이용됩니다. 댓글 서비스 제공 및 본인 확인 스팸 및 부정 이용 방지 블로그 서비스 개선을 위한 통계 ..
데이터 분석 시작하기 #3 : CSV와 결측치 보간 CSV란?CSV 파일은 쉼표(,)를 사용하여 데이터를 구분하는 텍스트 파일입니다.엑셀과 같은 프로그램에서 쉽게 데이터를 저장하고 불러올 수 있으며, 데이터 분석에 자주 사용되는 파일 형식입니다.Pandas로 불러오는 방식은 다음과 같이 간단합니다. import pandas as pddf = pd.read_csv('파일경로.csv') # ex) 'titanic.csv'print(df.head()) 주요 옵션encoding='utf-8': 인코딩 방식 (한글이 깨질 경우 'cp949' 사용)sep=',': 구분자 (기본은 콤마)na_values=['?', 'N/A', '--']: 특정 문자열을 결측치로 인식df = pd.read_csv('data.csv', na_values=['?', 'N/A', '--'..