전체 글

학교공부/운영체제

[운영체제] CPU 스케줄링(CPU Scheduling)

Multiprogramming: CPU를 최대한 이용해서 여러 프로그램을 concurrently하게 실행 운영체제에 의해 Kernel level 스레드가 scheduled 됨 보통 CPU 처리(CPU burst)와 IO를 기다리는 것(I/O burst)이 번갈아 가면서 수행됨 CPU bound program: IO burst가 얼마 없어서 CPU Burst가 길고 끊김이 별로 없는 프로그램 IO bound program: IO burst가 많아서 CPU Burst가 짧고 여러 개인 프로그램 CPU scheduler: ready queue에 있는 프로세스를 골라 CPU에 돌림 Preemptive & Nonpreemptive Nonpreemptive scheduling: 동작하는 프로세스가 실행이 끝날 때까..

학교공부/운영체제

[운영체제] 프로세스(Process)

Memory Layout Text section: program code Data Section: (initialized and uninitialized) global variable Stack section: temporary data(function parameter, return address, local variable) Heap section: memory dynamically allocated during runtime Process state PCB 운영체제가 프로세서를 제어하기 위해 정보를 저장해 놓은 곳으로, 프로세스의 상태 정보를 저장하는 구조체이다. Process state: running, waiting etc Program counter: 다음 수행할 명령어의 위치 CPU regi..

학교공부/운영체제

[운영체제] 운영체제 구조(Operating System Structure)

Operating System 운영체제(Operating System, OS)는 컴퓨터 시스템에서 하드웨어와 소프트웨어 사이의 인터페이스 역할을 수행하는 시스템 소프트웨어이다. 운영체제는 컴퓨터 자원을 효율적으로 관리하고, 사용자 및 응용 프로그램에게 필요한 서비스를 제공하는 역할을 한다. User Programs Operating system Hardware Interrupt 인터럽트(interrupt)는 컴퓨터 시스템에서 발생하는 중단 신호를 말한다. 이는 운영체제나 하드웨어 디바이스가 프로세서의 실행을 일시적으로 중단시키고, 특정 이벤트에 대한 처리를 수행하도록 하는 메커니즘이다. 인터럽트가 발생하면 현재 실행 중인 작업이 일시적으로 중단되고, 해당 인터럽트를 처리하는 인터럽트 서비스 루틴(ISR)..

개인공부/데이터 사이언스

로지스틱 회귀

로지스틱 회귀모델의 배경 선형 회귀모델의 경우 입력변수에 따른 출력변수는 연속성을 가지고 있다. 하지만 출력변수가 연속형 변수인 모델 뿐만 아니라 이진변수나 멀티변수 같은 범주형 데이터를 갖는 모델도 많다. 이러한 모델들을 다루기 위해서 선형 회귀모델과는 다른 방식으로 접근해야할 필요가 있는데 그것이 바로 로지스틱 회귀모델이다. 로지스틱 회귀모델은 새로운 관측치가 왔을 때 이를 기존 범주 중 하나로 예측하는 '분류' 모델이다. 예를 들어 생산된 물건이 불량인지 정상인지, 또는 이 사람이 병에 걸렸는지 안걸렸는지를 분류해주는 모델 등이 있다. 입력변수 X가 주어졌을 때 출력변수 Y가 이진 또는 멀티변수로 표현된다면 이를 그래프 상에 나타내어 의미있는 결과가 도출될 수 없다. 때문에 로지스틱 회귀모델에서 입..

개인공부/데이터 사이언스

최근접 이웃(K-Nearest Neighbor) 알고리즘을 이용한 종양 판별 모델 만들기

KNN(K-Nearest Neighbor) 알고리즘을 이용해 종양 덩어리에 대한 데이터가 주어졌을 때 이 종양 덩어리가 단순히 양성종양인지 아니면 악성종양인지 판별해주는 머신러닝 모델을 만들어보았다. 개발환경은 구글의 Colab에서 진행하였으며 다음은 전체 코드이다. https://github.com/hizibu7/datascience_practice/blob/master/cancer_%20discrimination GitHub - hizibu7/datascience_practice Contribute to hizibu7/datascience_practice development by creating an account on GitHub. github.com K-최근접 이웃 회귀 알고리즘이란? 우선 코드..

개인공부/데이터 사이언스

신뢰도 높은 리뷰 탐색 프로젝트(파이어베이스, 파이썬)

인터넷에서 내가 찾고자 하는 리뷰를 검색해보면 신뢰할만한 리뷰를 찾을 때도 있지만 멋모르고 광고성 리뷰를 읽게 되는 경우도 적지 않다. 때문에 이번에는 파이썬과 파이어베이스를 이용해 리뷰에 적힌 단어들 중 광고성 리뷰에서 나올법한 단어들이 있는지를 확인하고 이를 바탕으로 그 리뷰의 신뢰도를 판단해주는 파이썬 프로젝트를 진행해봤다. 전체 코드는 다음과 같다. # import : firebase db import firebase_admin from firebase_admin import credentials from firebase_admin import db # import : crowling import urllib.request import urllib.parse from bs4 import Beaut..

IT 정보

블록체인과 암호화폐의 개념

현재 비트코인을 향한 열기는 과열된 채 전혀 식을 기미가 보이지 않고 있다. 몇 년 전까지만 해도 '인터넷에서 보니 누가 비트코인으로 얼마를 벌었더라' 처럼 멀게만 느껴졌던 일이 이제는 '친구 누구누구가 저번에 비트코인을 샀다더라' 하는 식으로 점점 저와의 거리감을 줄여만 가고 있는듯 하다 현재 많은 사람들이 비트코인을 비롯한 암호화폐에 지대한 관심을 보이고 있지만 그것은 거의 투자대상으로써의 관심일 뿐 암호화폐에 대해 정확히 알고 있는 사람은 그리 많지 않아보인다. 나 또한 그런 사람들 중 한명이었지만 나름 개발자 꿈나무로써 암호화폐에 대해 공부해보았다. 블록체인이란 실질적으로 암호화폐는 블록체인 기술의 부산물일 뿐 진정한 핵심은 블록체인 기술에 있기 때문에 우리는 우선 블록체인에 대해 알아둘 필요가 ..

개인공부/데이터 사이언스

Selenium을 이용한 미세먼지 크롤러 만들기(2)

이제 본격적으로 미세먼지 크롤러를 제작해보도록 하자. 다음은 전체 코드이다. from selenium import webdriver from bs4 import BeautifulSoup driver = webdriver.Chrome('C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python\crawling\selenium\chromedriver') driver.implicitly_wait(3) driver.get('http://openAPI.seoul.go.kr:8088/(인증키)/xml/RealtimeCityAir/1/25/') raw = driver.page_source html = BeautifulSoup(raw, 'html...

개인공부/데이터 사이언스

Selenium을 이용한 미세먼지 크롤러 만들기(1)

오늘은 Selenium을 사용해서 미세먼지 데이터 크롤러를 만들어보자. OpenAPI 사용하기 우선 미세먼지 데이터를 크롤링해오기 위해서는 당연하게도 미세먼지 현황에 대한 데이터가 필요할 것이고 이러한 데이터는 OpenAPI(누구나 사용할 수 있는 API)를 통해 얻을 수 있다. 필자는 '서울 열린데이터광장'에서 제공하는 '서울시 권역별 실시간 대기환경 현황'이라는 공공데이터를 사용해 크롤러를 제작해보았다. data.seoul.go.kr/dataList/OA-2219/S/1/datasetView.do 서울시 권역별 실시간 대기환경 현황 대기 환경지수, 미세먼지, 오존, 이산화질소, 일산화탄소, 아황산가스 등의 권역별 실시간 대기환경정보를 제공합니다. data.seoul.go.kr 이러한 OpenAPI의 ..

개인공부/데이터 사이언스

네이버 e북 Top100 크롤링하기

오늘은 파이썬을 사용하여 네이버 e북에서 Top 1~100를 차지하고 있는 책들의 정보를 크롤링한 뒤 카테고리를 카운팅해서 어떤 종류의 책이 인기가 많은지에 대해 살펴보았다. 전체 코드는 다음과 같다. import requests from bs4 import BeautifulSoup dic = {} for page in range(1, 6): print("page ", page) print("") raw = requests.get("https://series.naver.com/ebook/top100List.nhn?page=" + str(page)) html = BeautifulSoup(raw.text, "html.parser") book = html.select("div#content li") for b..

Dev_Camp
연구자의 노트