Study/CS11 4.1 ~ 4.4 자료구조 자료구조 : 이름 그대로 어떠한 구조로 데이터를 다룰지 학습하는 과목이다.알고리즘 : 어떠한 목적을 이루기 위해 필요한 일련의 연산 절차시간복잡도와 공간복잡도시간 복잡도 - 입력의 크기에 따른 프로그램 실행 시간의 관계공간복잡도 - 입력의 크기에 따른 프로그램 실행 공간의 관계 (메모리)여기서 사용하는 표기법이 Big O임.Big O란 무엇인가성능판단 척도 , 점근적 상한을 표기하는 방법점근적 : 어떤 값이나 상태에 점점 가까워지지만 완전히 도달하진 못한다.상한 : 넘을 수 없는 한계실행 시간이 대략 이 이상(상한)은 커지지 않을 것.Ex)O(1) : 시간이 상수값보다 오래 걸리지 않을 것O(n) : 시간이 n값에 따라 걸릴 것O(n^2) : 시간이 n의 제곱만큼 걸릴 것등등 표로 나타내면 이렇다.시간복.. 2025. 2. 26. 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-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. 이전 1 2 다음