본문 바로가기

CS6

03 - 6 파일 시스템 파일 시스템보조기억장치의 정보를 파일 및 디렉터리(폴더)의 형태로 저장 & 관리 할 수 있게 하는운영체제의 내부 프로그램파일구성 요소파일의 이름파일을 실행하기 위한 정보파일과 관련한 부가정보(속성 또는 메타데이터)여기엔 파일의 형식,위치,크기 등 파일과 관련한 다양한 정보가 있음.이러한 파일을 다루는 모든 작업이 운영체제에 의해 이루어진다.→ 따라서 시스템 콜을 이용해야 한다.파일 디스크립터 (File Descriptor, FD)란?1️⃣ 운영체제가 파일, 소켓, 파이프 등 입출력 리소스를 추적하는 정수형 식별자.2️⃣ 파일을 열면 커널이 해당 파일에 고유한 번호(FD)를 할당하여 관리.3️⃣ 파일 디스크립터의 기본 값 (POSIX 기준)0 → 표준 입력(Standard Input, stdin)1 → 표.. 2025. 2. 19.
03 - 5 가상 메모리 가상 메모리 (Virtual Memory)물리 메모리보다 더 큰 메모리를 쓰는 기술1️⃣ 물리 메모리(RAM)보다 더 많은 메모리를 사용할 수 있도록 하는 기법으로, 실제 메모리보다 큰 공간을 제공함.2️⃣ 디스크의 일부를 “스왑 영역(Swap Space)"로 활용하여 부족한 RAM을 보완함.3️⃣ 페이지 단위로 메모리를 관리하며, 자주 사용하는 페이지는 RAM에, 덜 쓰는 페이지는 디스크로 이동 (페이지 교체).4️⃣ 장점: 프로세스당 큰 메모리 공간 사용 가능, 멀티태스킹 효율 증가, 프로그램 간 메모리 보호 제공.5️⃣ 단점: 디스크 접근 속도가 RAM보다 느려 페이지 폴트(Page Fault)가 많아지면 성능 저하 발생. 🚀물리주소와 논리 주소물리 주소(physical address) : 하드웨.. 2025. 2. 19.
03 - 4 CPU 스케줄링 CPU 스케줄링 : CPU를 어떤 프로세스에 할당할지를 결정하는 과정(운영체제(OS)가 여러 프로세스를 효율적으로 실행하기 위함)CPU 스케줄 알고리즘 - 운영체제가 프로세스에 CPU를 배분하는 방법CPU 스케줄러 - 스케줄 알고리즘을 결정하고 수행하는 운영체제의 일부분실행 문맥이 있다면 모두 스케줄링 대상프로세스 뿐만 아니라 스레드도 CPU 스케줄링의 대상이다.실행의 문맥을 가지고 있는 모든 것은 스케줄링 할 수 있기 때문우선 순위운영체제는 프로세스별 우선순위를 판단하여 PCB(Process Control Block)에 명시우선 순위가 높은 프로세스에는 CPU의 자원을 더 빨리 , 많이 할당일부 프로세스의 우선순위를 직접 높힐 수도 있음운영체제마다 프로세스의 우선순위 확인 가능운영체제는 어떤 프로세스에.. 2025. 2. 19.
03-2 프로세스와 스레드 프로세스 vs 스레드 예시 정리항목프로세스 (Process)쓰레드  (Thread)정의실행 중인 프로그램프로세스 내에서 실행되는 작은 작업 단위메모리독립적인 메모리 공간 가짐같은 프로세스 내에서 메모리 공유통신 방식프로세스 간 통신(IPC) 필요 (느림)같은 프로세스 내에서 데이터 공유 가능 (빠름)독립성하나 죽어도 다른 프로세스 영향 없음하나 죽으면 같은 프로세스 내 다른 스레드도 영향받을 수 있음생성 비용무거움 (새로운 메모리 할당 필요)가벼움 (메모리 공유하니까 부담 적음)실제 예시크롬 탭 1개, 포토샵, 게임 실행포토샵의 필터 적용, 게임 내 NPC AI팀 단위 예시한 회사의 각 부서 (독립적, 서로 협업하려면 연락 필요)부서 내의 개별 직원들 (같은 공간에서 빠르게 협업 가능)집 예시여러 가구가.. 2025. 2. 12.
02.컴퓨터 구조 컴퓨터는 언어를 이해하지 못한다.(java,C++,python,Js 등등)그래서 이런 언어들을 컴퓨터 언어로 번역해주는 작업이 필요하다. 그 작업을 컴파일(Compile)이라고 하고언어에 따라 두가지 방법으로 나뉜다.1.컴파일러(Compiler)전체 코드를 한 번에 번역해서 실행 파일(executable file)로 만들어주는 방식번역된 파일을 실행하니까 실행 속도가 빠르고, 한 번 번역만 하면 반복적으로 실행 가능예시 언어: C, C++, Java (Java는 살짝 애매하지만 컴파일 과정을 거친다.)작동 흐름:소스 코드 작성.컴파일 -> 실행 파일 생성.실행 파일 실행.컴파일은 마지막 한번(One-Time Process)2.인터프리터코드를 한 줄씩 읽어서 바로 실행하는 방식실행 속도는 느릴 수 있지만,.. 2025. 1. 22.
다시 시작하는 Node.js, 새로 시작하는 CS 책으로만 읽는 것에 한계를 느껴서 제로초 강의를 통해 다시 공부한다.https://www.inflearn.com/course/%EB%85%B8%EB%93%9C-js-%EA%B5%90%EA%B3%BC%EC%84%9C [개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지 강의 | 제로초(조현영) - 인프런제로초(조현영) | 노드가 무엇인지부터, 자바스크립트 최신 문법, 노드의 API, npm, 모듈 시스템, 데이터베이스, 테스팅 등을 배우고 5가지 실전 예제로 프로젝트를 만들어 나갑니다. 클라우드에 서www.inflearn.com해당 강의를 택했고 MySql과 aws도 사용하기에(람다,S3) 나에게 적합한 강의라고 생각해서 결제했다.(근데 대부분 유튜브에 무료강의로 올라와서 사기 당한 느낌 ㅠ).. 2025. 1. 11.