분류 전체보기 91

[Chapter 1] 쉽게 배우는 알고리즘[알고리즘이란?]

알고리즘이란 어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정을 기술한 것.알고리즘을 설계하기 위해서는 우선 해야 할 작업을 명확하게 명시해야 한다.설계하려는 알고리즘이 "무엇을"하는지 입력과 출력으로 명시할 수 있다.ex) 학생 100명의 시험 점소를 입력으로 받아 최고점을 출력하는 작업을 할 때 입출력 표현입력 : 100개의 점수출력 : 입력된 100개의 점수 중 최댓값입출력의 구체화된 표현입력 : 100개의 변수 x[1], ... x[100]의 값출력 : x[1], ..., x[100] 중 최댓값이 입출력을 요구하는 알고리즘의 대략 형태maxScore(x[], n){x[1...n]의 값을 차례대로 보면서 최댓값을 계산한다. //1return 찾은 최대값;}위에 작성한 서술적 표..

알고리즘 2025.03.04

[Chapter 6] 개념 이해를 위한 운영체제 [파일 시스템 - 리눅스 파일 시스템]

가상 파일 시스템가상 파일 시스템(VFS : Virtual File System)의 기본 개념은 사용자로 하여금 다양한 파일 시스템을 일관된 형태로 접근할 수 있도록 하는것이다.대부분의 운영체제에서는 자신의 파일 시스템만을 지원하고 있지만 ㄱ리눅스에서는 가상 파일 시스템 개념을 도입하여 여러 종류의 파일 시스템을 지원하고 있다. 리눅스 커널의 기본 파일 시스템은 EXt2 파일 시스템이다. 그러나 리눅스에서는 VFS를 통하여 다양한 운영체제(ex): Ms-DOS, UNIX, MINIX, Windows, NT 등)에서 사용하는 파일 시스템을 지원한다. VFS는 특정 파일 시스템들의 상위 계층에 위치하면서 각각의 파일 시스템을 추상화한다. 따라서 사용자 프로세스의 파일 접근을 위한 시스템 호출은 일차적으로 V..

CS/운영체제 2025.03.03

[Chapter 6] 개념 이해를 위한 운영체제 [파일 시스템 - 디스크 관리]

운영체제를 포함하여 대부분의 파일은 디스크 상의 블록 단위로 저장된다.하나의 파일은 여러 개의 블록으로 구성되기 때문에 하나의 파일을 참조하기 위해서는 파일을 구성하는 모든 블록을 접근하여야 한다. 따라서 디스크 접근 속도는 물리적으로 제한되어 있지만 이를 운영하는 방법에 따라 시스템의 성능이 달라진다. 디스크 구조 및 접근 시간디스크는 여러 개의 원판과 헤드로 구성되며 데이터는 헤드에 의해 원판의 표면에 저장된다. 하나의 원판은 동심원을 그리는 여러 개의 트랙으로 나누어지고 트랙은 또 다시 여러 개의 섹터로 나뉘어 사용된다. 유의할 점 트랙의 길이는 다르지만 트랙 당 섹터의 수는 일정하다. 트랙 및 섹터의 수는 디스크의 특성에 의해 물리적으로 결정되지만 일반적으로 하나의 디스크 원판에는 500 ~ 20..

CS/운영체제 2025.03.03

[Chapter 6] 개념 이해를 위한 운영체제 [파일 시스템 - 빈 공간 관리]

파일의 내용을 저장하기 위해서는 보조 기억장치의 빈 공간을 파악하고 빈공간을 할당하는 기법이 필요하다.  빈 공간 관리파일 시스템은 새로운 파일을 생성하기 위하여 보조 기억장치의 빈 공간의 크기와 위치를 관리해야 한다. 이러한 빈 공간을 관리하는 기법은 보조 기억장치의 용량에 따라 다르다.비트 맵보조 기억장치의 빈 공간을 관리하기 위하여 모든 블록에 해당하는 비트맵 혹은 비트 백터를 유지하고 각 블록의 사용 여부를 비트 단위로 표시하는 가장 간단한 기법이다. 만약 보조 기억장치의 해당 블록이 사용중이면 '1' 아니면 '0'으로 표시한다.ex) 20개의 블록으로 구성된 디스크에서 블록 번호 0, 1, 2, 10, 11, 15, 16, 17이 사용중이고 나머지 블록은 비어있을 경우 비트맵의 내용은 11100..

CS/운영체제 2025.03.03

[Chapter 6] 개념 이해를 위한 운영체제 [파일 시스템 - 개요]

파일 시스템은 일반 사용자가 가장 가깝게 접하게 되는 운영체제의 구성 요소로써 사용자의 편의성 제공을 위하여 보다 쉽게 파일을 저장하고 저장된 파일을 접근할 수 있도록 하는 것이 가장 중요하다.파일 시스템에서 제공하는 기능파일 생성(creation)과 삭제(deletion)파일 열기(open)와 닫기(close)파일 읽기(read)와 쓰기(write)파일 공유(sharing)와 보호(protection)파일 시스템은 사용자의 요청에 따라 디스크와 같은 보조 기억 장치에 파일의 내용을 저장하고 저장된 파일의 내용을 다시 사용할 수 있도록 사용자의 보조 기억장치 사이의 인터페이스 기능을 제공한다. 이러한 기능을 제공하기 위하여 피일 시스템은사용자의 논리적 단위인 파일과 보조 기억장치의 물리적 단위인 블록 사..

CS/운영체제 2025.03.02

[Chapter 5] 개념 이해를 위한 운영체제 [메모리 관리 - 가상 메모리]

메모리 관리 기법은 프로세스가 생성될 때 프로세스의 주소공간이 반드시 실제 메모리에 존재해야 한다. 따라서 실제 메모리보다 더 큰 프로세스는 실행시킬 수 없다. 그러나 가상 메모리(virtual memory)는 실제 메모리보다 더 큰 프로세스의 실행을 가능케 하는 메모리 관리 기법이다.일반적으로 가상 메모리를 지원하는 시스템에서는 디스크와 같은 보조 기억 장치의 일부분을 마치 실제 메모리처럼 활용한다. 프로세스의 전체 주소공간은 가상 메모리에 유지하면서 프로세스 실행에 필요한 부분만을 실제 메모리에 적재시킴으로써 프로세스를 실행 시킨다. 따라서 사용자는 실제 메모리보다 더 큰 메모리가 존재하는 것처럼 느끼게 된다. 가상 메모리 주소공간과 실제 메모리 주소 공간이 서로 다름을 유의해야 한다.실제 메모리 주..

카테고리 없음 2025.03.02

[Chapter 5] 개념 이해를 위한 운영체제 [메모리 관리 - 다중 프로그래밍 시스템]

다중 프로그래밍 시스템에서는 다수의 사용자 프로세스를 메모리에 적재하기 위하여 사용자 영역을 여러 개로 분할하여야 한다. 여기서 분할은 하나의 프로세스를 메모리에 적재하는데 필요한 메모리 영역을 의미하며 크기가 고정 혹은 가변적이다.다수의 고정 혹은 가변 분할된 메모리 영역에 프로세스를 할당하는 방법에는 연속(contiguous) 할당과 불연속(non contiguous) 할당이 있다. 연속 할당연속 할당은 하나의 사용자 프로세스를 임의의 분할에 연속적으로 할당하는 방법으로서 분할의 크기가 할당하려는 사용자 프로세스보다 반드시 크거나 같아야 한다.연속 할당 기법은 고정 혹은 가변 분할에 따라 차이가 있다. 고정 분할고정 분할은 다중 프로그래밍을 위하여 메모리 주소 공간을 임의의 크기로 분할하여 사용자 프..

CS/운영체제 2025.02.27

[Chapter 5] 개념 이해를 위한 운영체제 [메모리 관리 - 단일 프로그래밍 시스템]

단일 프로그래밍 시스템에서는 메모리 공간을 단순히 운영체제(모니터 혹은 커널) 영역과 사용자 영역으로 분할하여 사용한다. 따라서 운영체제 영역을 제외한 나머지 영역을 하나의 사용자 프로세스에게 할당된다.이러한 시스템에서 메모리 공간을 효율적으로 사용하기 위한 운영체제의 특별한 기법이 필요 없다. 그러나 사용자 프로세스의 오류에 의해 운영체제가 파괴되는 것으로부터 보호할 필요가 있다.CPU 내부의 경계 레지스터(boundary register)에 사용자 영역의 시작 주소를 설정함으로써 사용자 프로세스의 오류에 의해 운영체제 영역으로 침입하는 것을 방지하도록 한다.운영체제는 사용자 프로세스가 메모리를 참조할 때마다 CPU의 경계 레지스터 값과 비교하겨 클 경우에만 접근을 허용한다.물론 사용자 프로세스는 입출..

CS/운영체제 2025.02.27

[Chapter 5] 개념 이해를 위한 운영체제 [메모리 관리 - 개요]

어떤 프로그램(혹은 프로세스)이 실행되기 위해서는 그 프로그램이 반드시 메모리(주 기억장치)에 적재되어야 한다. 오직 하나의 프로세스만 지원하는 단일 프로그래밍 시스템에서는 운영체제가 적재된 메모리 공간을 제외한 나머지 영역을 하나의 프로세스가 독점하여 사용하게 된다. 따라서 메모리 공간을 효율적으로 사용하기 위한 운영체제의 특별한 기법이 필요 없다. 그러나 다수의 프로세스를 지원하는 다중 프로그래밍 시스템에서는 운영체제가 적재된 메모리 공간을 제외한 나머지 영역이 다시 분할되어야 한다. 이러한 분할은 정적 또는 동적으로 이루어지기 때문에 메모리 공간을 보다 효율적으로 이용하기 위한 운영체제의 메모리 관리 기능이 요구된다. 효율적인 메모리 관리 정책을 결정하기 위해서는 기본적으로 다음과 같은 사항들을 고..

CS/운영체제 2025.02.27

[Chapter 4] 개념 이해를 위한 운영체제 [교착상태 - 교착상태 해결책]

교착상태 해결책에는 교착상태가 발생하지 않도록 자원을 할당하는 프로토콜을 사용하는 방법으로써 예방(prevention)과 회피(avoidance) 그리고 교착상태를 허용하고 발생 여부를 탐지(detection)하여 복구(recovery)시키는 방법이 있다. 그러나 운영체제에서 교착상태에 대한 해결책을 지원하지 않을 경우에는 교착상태의 프로세스를 강제로 종료시키거나 재부팅(rebooting)할 수 밖에 없다.교착상태 예방교착상태 예방은 교착상태의 발생 가능성을 사전에 제거함으로써 예방하는 것이다. 교착상태의 원인(4가지) 중 어느 하나라도 만족하지 않도록 운영체제에서 자원을 관리함으로써 교착상태의 가능성을 사전에 제거할 수 있다. 이 방법은 개념적으로 간단명로하지만 자원 할당에 대한 지나친 제약으로 지원의..

CS/운영체제 2025.02.26