https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이름이 귀여워서 선택한 귤 고르기 아래처럼 답을 적었는데def solution(k, tangerine): dic = {} for t in tangerine : if t in dic: dic[t] += 1 else : dic[t] = 1 l = sorted(list(dic.values()),reverse=True) type_idx = 0 cnt = 0 for t..
OS_01 : OS란 무엇이며, 핵심 기능은?Process컴퓨터를 실행할 때 나를 대신하는 무언가키보드, 마우스로 조작하는 대상은 기본적으로 Process우리가 캐릭터를 움직인다고 해서 게임의 월드나 날씨의 정책이 바뀌지 않듯이, 컴퓨터를 키보드, 마우스를 이용해 Process를 통제한다고 한들, 컴퓨터 내부 기본 정책은 바뀌지 않는다.컴퓨터 구성 3대 요소User : Daemon(리눅스), Service(윈도우) 등의 시스템 프로세스 | 캐릭터 역할Kernel (SW) : 관리, 제어 | 게임 월드H/W : CPU + RAM운영체제컴퓨터는 피지컬(H/W) + 로지컬(S/W : Kernel + User 영역)으로 이루어져 있다.여기서 Kernel + User 영역을 "운영체제" 라고 부른다.운영체제 핵심..
프로세스의 5가지 상태1. 생성 (New)프로세스가 생성된 상태지만, 운영체제에 의해 수행 가능한 프로세스 풀로 진입이 아직 허용되지 않은 프로세스메모리 공간 할당, 프로세스 제어 블록(PCB) 생성 등 다양한 초기화 작업이 이루어짐2. 준비 (Ready)CPU 를 사용할 수 있는 기회가 주어지면 수행할 준비가 되어있는 프로세스준비 상태의 프로세스는 준비 큐(Ready Queue)에서 대기하며, 스케줄러가 프로세스를 선택하여 CPU 를 할당할 때까지 기다림3. 실행 (Running)현재 CPU를 사용하여 실행 중인 프로세스프로세스의 명령어가 순차적으로 실행되며, 운영체제는 프로세스의 수행 상태를 지속적로 모니터링 함4. 대기 (Blocked)특정 이벤트(I/O 작업 완료 등)가 발생할 때까지 수행될 수 ..
https://youtu.be/2i3dInwVeUM?si=O1xfoCB3dDkDiEqg 14:00 분까지의 요약본 컴퓨터 자원의 이해컴퓨터에서 자원이라고 하는 부분은 시스템이 운영될 때 필수적인 요소를 의미한다. 특히 전산 자원은 CPU와 메모리로 대표되며, 이 글에서는 컴퓨터 자원의 주요 개념과 운영체제에서 이를 어떻게 관리하는지에 대해 살펴본다.1. 전산 자원의 종류: CPU와 메모리전산 자원은 크게 두 가지가 있다.- CPU: 연산의 주체로서 여러 코어(Core)를 가지고 있으며, 실제 계산 작업을 수행한다.- 메모리 (Virtual Memory): RAM과 HDD를 조합하여 운영체제가 관리하는 가상 메모리 공간으로, 프로세스 단위로 할당된다.Windows 운영체제에서는 스레드를 기준으로 CPU를 ..
TCP vs. UDP: 통신 프로토콜 비교네트워크 통신에서 가장 많이 사용되는 두 가지 프로토콜인 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 각각 장단점이 있으며, 서로 다른 용도로 사용된다. 두 프로토콜의 가장 큰 차이는 연결 관리 방식에 있다. TCP는 신뢰성을 보장하기 위해 연결을 설정하고 종료하는 절차가 있는 반면, UDP는 이러한 절차를 생략하고 빠른 전송에 중점을 둔다. 이번 글에서는 TCP의 3-way, 4-way handshake와 UDP의 특성을 비교하며 두 프로토콜을 분석해 보자.1. TCP: 신뢰성 있는 연결 관리TCP는 신뢰성 있는 데이터 전송을 보장하는 프로토콜로, 연결을 설정하고 데이터를 전송하며, 종료까지..