본문 바로가기

Study24

03-3 동기화와 교착 상태 공유 자원프로세스나 스레드가 공유하는 자원공유자원은 메모리나 파일이 될 수도 있고 , 전역변수나 입출력장치가 될 수 있다.임계 구역(Critial Section)하나의 프로세스/스레드만 접근하도록 보호해야 하는 코드 영역경쟁 상태(Race Condition) 를 방지하기 위해 사용된다.경쟁 상태(Race Condition) : 여러 개의 스레드(또는 프로세스)가 공유 자원에 동시에 접근할 때, 실행 순서에 따라 예측하지 못한 결과가 발생하는 문제💡 예제 (파이썬 멀티스레드 환경)import threadingcounter = 0 # 공유 변수def increment(): global counter for _ in range(1000000): counter += 1 # 임계 구역.. 2025. 2. 12.
03-2 프로세스와 스레드 프로세스 vs 스레드 예시 정리항목프로세스 (Process)쓰레드  (Thread)정의실행 중인 프로그램프로세스 내에서 실행되는 작은 작업 단위메모리독립적인 메모리 공간 가짐같은 프로세스 내에서 메모리 공유통신 방식프로세스 간 통신(IPC) 필요 (느림)같은 프로세스 내에서 데이터 공유 가능 (빠름)독립성하나 죽어도 다른 프로세스 영향 없음하나 죽으면 같은 프로세스 내 다른 스레드도 영향받을 수 있음생성 비용무거움 (새로운 메모리 할당 필요)가벼움 (메모리 공유하니까 부담 적음)실제 예시크롬 탭 1개, 포토샵, 게임 실행포토샵의 필터 적용, 게임 내 NPC AI팀 단위 예시한 회사의 각 부서 (독립적, 서로 협업하려면 연락 필요)부서 내의 개별 직원들 (같은 공간에서 빠르게 협업 가능)집 예시여러 가구가.. 2025. 2. 12.
03-1 운영체제 큰그림 운영체제는 특별한 프로그램이다.대표적으로데스크탑 : 윈도우 ,맥OS,리눅스스마트폰 : iOS , 안드로이드등이 있다. 매우 다양한 종류,다양한 기능이 있지만 핵심적인 기능은 비슷하다.커널 : 운영체제의 핵심 기능을 담당하는 부분 (자동차 엔진 같은 곳)운영체제의 두가지 핵심 기능1. 자원 할당 및 관리프로세스와 스레드동기화와 교착 상태2.프로세스 및 스레드 관리 (뒤에 자세히 다룸)프로세스 : 실행중인 프로그램 실행 중인 프로그램의 독립적인 작업 단위로, 자신만의 메모리 공간을 가짐 (OS가 할당) ex ) 크롬의 탭 하나쓰레드 : 이 프로세스를 이루는 실행 단위쓰레드는 같은 프로세스의 메모리를 공유 함.프로세스 A ( 쓰레드 a , 쓰레드 b ~~~)개념하드웨어적 개념 : 한 코어에서 동시에 실행 될 .. 2025. 2. 12.
04.코딩테스트 필수 문법 04.1 빌트인 데이터 타입자바스크립트의 빌트인 데이터 타입은 언어 자체에서 제공하는게 두가지다.원시 타입 (primitive type)참조 타입 (reference type)04.2 참조타입🔹 원시 타입 vs 참조 타입JS의 데이터 타입은 크게 두 가지로 나뉨:원시 타입 (Primitive Type)값 자체를 메모리에 저장함.변수에 값을 직접 할당함.number, string, boolean, undefined, null, symbol, bigint참조 타입 (Reference Type)메모리 주소를 저장하고, 실제 데이터는 **Heap(힙 메모리)**에 저장됨.변수가 값을 직접 저장하는 게 아니라, **메모리 주소(참조값)**를 저장함.object, array, function, date, map,.. 2025. 2. 11.
You don't know JS yet(2) 2.1 파일은 프로그램입니다.JS에서는 파일 각각이 별도의 프로그램이다.독립적은 .js 파일 여러개를 하나의 프로그램으로서 작동시키는 유일한 방법은전역스코프를 사용해 파일 간 상태를 공유하고 공통으로 사용하는 기능을 접근할 수 있도록 만드는 방법 뿐이다.전역 스코프 (Global Scope)코드 어디서든 접근 가능한 변수 및 함수가 정의되는 범위.var는 window(브라우저)나 global(Node.js)에 등록되지만, let과 const는 해당 블록 스코프JS는 각 모듈을 별도로 처리한다.파일 하나를 제3의 작고 독립적은 프로그램(파일)과 협력해 전체를 작동시키는 고유한 작은 프로그램이다.2.2 값JS에서 값은 크게 원시타입, 객체타입으로 분류 된다.원시 타입 (Primitive Type)값 자체를 .. 2025. 2. 6.
02-5 보조기억장치와 입출력 장치 보조 기억장치오늘날 보조기억장치는 크게 2가지다.하드 디스크 드라이브플래시 메모리 기반 저장장치하드디스크➡ 요약: 플래터가 회전하면 헤드가 데이터를 읽고 쓰고, 스핀들은 이걸 빠르게 돌려줌!스핀들(Spindle) → 플래터를 고속 회전시켜 데이터 접근 속도를 높임.플래터(Platter) → 데이터가 저장되는 디스크(자기디스크)로, 여러 장이 쌓여 있음.헤드(Head) → 플래터 표면에서 데이터를 읽고 쓰는 역할을 함.플래시 메모리전기적인 방식으로 데이터를 읽고 쓰는 반도체 기반의 저장장치 ( USB 메모리, SD카드,SSD )얘네 역할은 2가지임전원이 꺼져도 데이터를 안전하게 보관CPU가 필요로 하는 정보를 조금이라도 빠른 성능으로 메모리에 전달→ 얘네(데이터)들을 빠르고 안전하게 다루는 방법?!RAID.. 2025. 2. 5.