전체 글 12

컴퓨터 데이터, 정보단위

1. 0과 1로 숫자를 표현하는 방법정보 단위컴퓨터가 표현하는 정보단위란?컴퓨터는 0 또는 1밖에 이해하지 못합니다.(*이진수는 컴퓨터의 회로에서 전기 신호의 상태(켜짐, 꺼짐)를 표현하는데 적합하기 때문에 사용합니다.) 0과 1을 나타내는 가장 작은 정보 단위를 비트 bit(Binary Digit)라고 합니다. 비트는 0과 1을 표현할 수 있는 가장 작은 정보 단위 예를 들어, 하나의 전구를 꺼짐과 켜짐  두 가지 상태를 표현할 수 있듯이,비트는 0 또는 1, 두 가지 정보를 표현할 수 있습니다. 그럼 2개의 전구는 몇 가지 상태를 보여줄 수 있을까요?(꺼짐, 꺼짐), (꺼짐, 켜짐), (켜짐, 꺼짐), (켜짐, 켜짐) 총 4가지의 정보를 표현할 수 있습니다. 이처럼 2비트는 4가지를 표현할 수 있습..

MST 최소 신장 트리

최소 비용 신장 트리(Minimum Spanning Tree, MST)는연결된 가중 그래프에서 모든 정점을 포함하고, 간선의 총 가중치가 최소인 트리를 의미합니다. 예를 들어, 아주 큰 놀이터를 설계하고 있다고 생각해봅시다. 이 놀이터에는 여러 개의 놀이기구가 있는데, 이 놀이기구들을 "모두 연결하는 길"을 만들어야 합니다. 길을 만들 때는 "비용"이 드니까, 가능한 "적은 비용"으로 모든 놀이기구를 연결하는 것이 목표입니다. 어떻게 하면 좋을까요? 놀이기구는 점으로 생각하고, 길은 선으로 생각해봅시다. 모든 놀이기구를 연결하는 선을 그려야 해요. 그리고 가장 적은 비용으로 모든 놀이기구를 연결해야 해요. 즉, 길의 총 길이가 최소가 되도록 해야 하는 거죠. 길을 만들 때, 같은 곳을 두 번 이상 돌아오..

Python 2024.10.09

컴퓨터 구조 시작하기

1. 컴퓨터 구조를 알아야 하는 이유1️⃣ 문제 해결똑같은 코드로 실습하고 있음에도 코드가 제대로 작동하지 않음컴퓨터 구조를 이해하고 있다면 문제 상황을 빠르게 진단할 수 있고, 문제 해결의 실마기를 다양하게 찾을 수 있음.컴퓨터 내부를 거리낌 없이 들여다보며 더 좋은 해결책 고민 가능. 문법에 맞는 소스 코드를 컴퓨터에 입력만 하는 개발자 ➡ 컴퓨터를 내려다보며 문제를 해결할 수 있는 개발자2️⃣ 성능, 용량, 비용개발한 웹사이트는 여느 프로그램과 마찬가지로 컴퓨터에서 작동하기 때문에 사용자들에게 선보이려면 이를 실행할 컴퓨터, 즉 서버 컴퓨터가 필요함.무조건 저렴? 최신?이런 단순한 기준은 개인 컴퓨터를 고를 땐 문제가 되지 않으나, 프로그램을 실행할 서버 컴퓨터를 고를 땐 문제가 됨무작정 저렴한 컴..

파일 시스템

👩‍💻 학습 목표파일에 대해 이해하기.디렉터리에 대해 이해하기.파티셔닝과 포매팅이 무엇인지 이해하기.파일 시스템의 파일 할당 방법 학습하기.FAT 파일 시스템과 유닉스 파일 시스템을 학습하기.1. 파일과 디렉터리파일과 디렉터리는 모두 운영체제 내부 파일 시스템이 관리하는 존재파일과 디렉터리는 보조기억장치에 있는 데이터 덩어리 ➡ 어떻게 운영체제가 인식하고 관리하는 걸까?📃 파일파일(file)이란 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미한다.달리 표현하면 파일은 의미 있고 관련 있는 정보를 모은 논리적 단위를 의미한다. [파일의 구성]이름파일을 실행하기 위한 정보파일 관련 부가 정보 : 속성(attribute) or 메타데이터(metadata) 파일 속성 : 파일 형..

Computer Science/OS 2024.09.25

가상 메모리 | 페이지 교체 알고리즘

가상 메모리 이전 내용 가상 메모리👩🏻‍💻 학습 목표스와핑이 무엇인지 이해하기연속 메모리 할당 기법과 외부 단편화 문제 이해하기가상 메모리 관리 기법인 페이징의 개념과 작동을 이해하기요구 페이징의 개념과 페이지water-lee.tistory.com 3. 페이지 교체와 프레임 할당 가상 메모리를 통해 작은 물리 메모리보다 큰 프로세스도 실행할 수 있다고는 하지만, 글머에도 불구하고 여전히 물리 메모리의 크기는 한정되어 있음. 운영체제는 프로세스들이 한정된 메모리를 효율적으로 이용할 수 있도록기존에 메모리에 적재된 불필요한 페이지를 선별하여 보조기억장치로 내보낼 수 있어야 하고,프로세스들에 적절한 수의 프레임을 할당하여 페이지를 할당할 수 있게 해야함. 1) 요구 페이징📌 요구 페이징 demand p..

Computer Science/OS 2024.09.20

가상 메모리

👩🏻‍💻 학습 목표스와핑이 무엇인지 이해하기연속 메모리 할당 기법과 외부 단편화 문제 이해하기가상 메모리 관리 기법인 페이징의 개념과 작동을 이해하기요구 페이징의 개념과 페이지 교체 알고리즘 이해하기스래싱과 그를 해결하기 위한 프레임 할당에 대해 이해하기1. 연속 메모리 할당메모리 내에 프로세스들이 연속적으로 배치되는 상황을 가정했었는데,이렇게 프로세스에 연속적인 메모리 공간을 할당하는 방식을 연속 메모리 할당 방식이라고 함A는 A의 크기만큼 메모리 주소를 할당받아 연속적으로 배치되고B는 프로세스 A 이후에 또 B의 크기만큼 연속적인 메모리 주소를 할당받아 배치되는 식더보기운영체제의 핵심 서비스프로세스 관리 : 메모리에 적재되어서 동시에 실행되고 있는 프로세스들을 관리운영체제는 동시다발적으로 생성/..

Computer Science/OS 2024.09.08

교착 상태

🔥 학습 목표교착 상태가 무엇인지 이해하기교착 상태는 어떤 상황에서 발생하는지 이해하기교착 상태를 예방하고, 회피하고, 검출하는 방법에 대해 학습하기. 1. 교착상태도심 속 도로 정체의 경우 복구되기까지 오랜 시간이 걸리고, 심한 경우엔 교통 경찰이 직접와서 마비를 해결해야한다.이처럼 프로세스 실행 과정에서도 비슷한 문제가 발생하며,프로세스 실행하기 위해서는 자원이 필요한데,두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다린다면 그 어떤 프로세스도 더 이상 진행할 수 없는 교착 상태가 발생한다. 식사하는 철학자 문제Dining philosophers problem 식사하는 철학자 문제는 교착 상태를 설명하기 위한 아주 고전적이고,교착 상태가 1️⃣어떤 상황에서 왜 발생하는지,2️⃣교착 상태..

Computer Science/OS 2024.09.04

프로세스 동기화

1. 동기화 동시다발적으로 실행되는 프로세스들은 서로 협력하며 영향을 주고받는다.이렇게 협력하여 실행되는 프로세스들은 실행 순서와 자원의 일관성을 보장해야 하기 위해 반드시 동기화(synchronization)되어야 한다.  + 프로세스와 스레드 둘 다 동기화 대상! 편의상 프로세스로 이야기하고 스레드가 포함된다는 것을 알아두기1-1. 동기화동기화의 의미예를 들어, 워드 프로세서에는 사용자로부터 입력을 받는 프로세스와입력한 내용의 맞춤법을 검사하는 프로세스,입력한 내용을 화면에 출력해 주는 프로세스 등이 있음 이 프로세스는 각기 다른 독립적인 프로세스이지만 공동의 목표를 위해 서로 협력하는 존재 이렇게 협력적으로 실행되는 프로세스들은 아무렇게나 동시에 실행해서는 안되고, 올바른 실행을 위해 동기화가 필수..

Computer Science/OS 2024.08.26

CPU 스케줄링과 알고리즘

1. CPU 스케줄링운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것➡️ 컴퓨터 전체 성능과도 직결되는 아주 중요한 문제!  = 시스템 성능을 최적화하기 위해 필수적인 작업이며 운영체제는 이를 효율적으로 관리하기 위해 다양한 전략을 사용함 만약에 프로세스들한테 CPU를 제대로 분배를 못하면 꼭 실행되어야 하는 프로세스가 실행이 안되거나당장 급하지 않은 프로세스가 실행이 되는 아주 무질서한 상태가 반복될 수 있음. 프로세스의 우선순위그러면 가장 공정한 CPU 스케줄링은?CPU를 사용하고 싶어하는 프로세스들이 차례로 돌아가며? CPU를 쓰면 되지 않을까? ➡️ 좋은 방법은 아님 빨리 처리해야 하는 프로세스가 있기 때문에 비교적 좋은 방법이 아님. 즉, 프로세스에 우선순위가 존재! 입출력..

Computer Science/OS 2024.08.21

프로세스와 스레드

1. 프로세스 개요📌 프로세스란? 실행 중인 프로그램 실행 되기 전엔 보조기억장치에 있는 데이터 덩어리일 뿐이지만보조기억장치에 저장된 프로그램을 실행시켜 메모리에 적재하고 실행하는 순간에 그 프로그램은 프로세스가 된다. 이러한 과정을 '프로세스를 생성한다'라고 표현 [ 프로세스 확인하는 방법 ]- 윈도우 : 작업 관리자- 리눅스, macOS : ps 명령어 프로세스의 종류1. 포그라운드 프로세스 Foreground Process: 사용자가 볼 수 있는 공간에서 실행되는 프로세스. 즉, 사용자가 보는 앞에서 실행되는 프로세스[예시] 웹브라우저, 메모장, 워드프로세스, 게임 등 2. 백그라운드 프로세스 Background Process: 사용자가 볼 수 없는 공간에서 실행되는 프로세스 2-1) 사용자가 직..

Computer Science/OS 2024.08.14