본문 바로가기

전체 글

(97)
[백준 JavaScript] 1929번 소수 구하기 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net const input = require("fs").readFileSync("/dev/stdin").toString(); const [m, n] = input.split(" ").map((it) => Number(it)); const prime = (num) => { if (num === 1) return false; for (let i = 2; i
CPU 스케줄링 알고리즘 CPU 스케줄링 CPU 스케줄링은 어떤 프로세스에 CPU를 할당할지 결정하는 것, 컴퓨터 시스템의 효율에 직결되는 중요한 일 결국, "어떻게 프로세스들이 CPU를 효율적으로 사용하게 할 것인가?" 라는 고민에서 CPU 스케줄링이 출발한다고 할 수 있다. 단계별 처리 스케줄링 컴퓨터는 여러 개의 프로세스가 동시에 존재하므로 각각의 프로세스를 식별하거나 관리하기 위해서 여러 가지 단계들이 필요하다. 장기 스케줄링시스템 과부하를 막기 위해 어떤 작업을 시스템이 받아들일지 또는 거부할지를 결정하므로 시스템 내에서 동작 시에 실행 가능한 프로세스의 총개수가 정해진다. 가장 큰 틀에서 이루어지는 CPU 스케줄링으로 시스템 내의 전체 작업 수를 조절한다. 중기 스케줄링 중지(suspend)와 활성화(active)로 ..
프로세스와 스레드(2) 멀티프로세스를 통해 동시에 두 가지 이상의 일을 수행할 수 있는 것을 말함 하나 이상의 일을 병렬로 처리할 수 있으며 특정 프로세스의 메모리, 프로세스 중 일부에 문제가 발생해도 다른 프로세스를 이용해서 처리 할 수 있어 신뢰성이 높다. 웹 브라우저 멀티프로세스 구조를 가지고 있으며 다음과 같다. 브라우저 프로세스: 주소 표시줄, 북마크 막대, 뒤로가기 버튼, 앞으로 가기 버튼 등을 담당하며 네트워크 요청이나 파일 접근 같은 권한을 담당 렌더러 프로세스: 보이는 부분의 모든 것을 제어 플러그인 프로세스: 사용하는 플러그인을 제어 GPU 프로세스: GPU를 이용해서 화면을 그리는 부분을 제어 IPC 멀티프로세스는 IPC가 가능하며 IPC는 프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 메커니즘 IP..
8월 5주차 회고록 KEEP 협업으로 pjt를 한 번 해봐서 프로젝트 기획을 되게 빠르게 작성함 ^^ 저번 pjt때 아쉬웠던 점을 말하고 팀원들과 소통함 노션에 정리 나름 잘하고 있는 중 열심히 살자 Problem cs 한 번씩 쉬고 7일 4솔...? 5솔..? 했는데.. 매일 풀자! React 파일 구조, auth, api 내가 다 짜야할 듯? ( 많이 하면 내가 많이 알아가는 거니까 그나마 다행) 중요 팀원 한 명 싸탈 ㅜㅜㅜ Try 1일 1솔 js로 하기 저번 pjt는 최적화가 많이 아쉬웠는데 이번에는 최적화 확실히 하기 auth token부분 + react hook 공부 좀 더 해보기 매일 CS 하기 코드 작성할 때 주석처리하자
[백준 JavaScript] 1463번 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net let input = require("fs").readFileSync("/dev/stdin").toString(); let num = Number(input); const DP = new Array(num + 1).fill(0); for (let i = 2; i
3.3 프로세스와 스레드 프로세스는 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업이라는 용어와 거의 같은 의미로 쓰인다. 스레드는 프로세스 내 작업의 흐름을 지칭한다. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. ※ 인스턴스화 는 데이터 필드의 저장 유형 및 값과 같은 정보를 읽거나 지정하는 프로세스 3.3.1 프로세스와 컴파일 과정 프로세스는 프로그램으로부터 인스턴스화된 것을 말함 프로그램은 Chrome, 이를 두 번 클릭하면 크롬 프로세스가 시작되는 것 프로그램은 컴파일러가 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 기계어로 번역되어 실행될 수 있는 파일이 되는 것을 의미하며 '컴파일 과정'이란 다음..
3.2 메모리 3.2.1 메모리 메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성되어 있다. 레지스터: CPU 안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 가장 적다 캐시: L1, L2 캐시를 지칭. 휘발성, 속도 빠름, 기억용량 적음 주기억장치: RAM , 휘발성, 속도 보통, 기억 용량 보통 보조기억장치: SSD, HDD를 일컬으며 비휘발성, 속도 낮음, 기억 용량 많음 램은 하드디스크로부터 일정량의 데이터를 복사해서 임시 저장하고 이를 필요 시마다 CPU에 빠르게 전달하는 역할을 한다. 경제성 때문에 계층을 두어 관리한다. 캐시 캐시는 데이터를 미리 복사해 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리를 말함 데이터를 접근하는 시간이 ..
3.1 운영체제와 컴퓨터 3.1.1 운영체제의 역할과 구조 운영체제의 역할 CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리 메모리 관리: 한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리 디스크 파일 관리: 디스크 파일을 어떠한 방법으로 보관할지 I/O 디바이스 관리:I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리 운영체제의 구조 유저 프로그램이 맨 위에 있고 GUI, 시스템콜, 커널, 드라이버가 있으며 가장 밑에 하드웨어가 있는 구조 GUI, 시스템콜, 커널, 드라이버 부분이 운영체제를 지칭함 GUI가 없고 CUI만 있는 리눅스 서버도 있다. GUI: 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 ..