본문 바로가기

전체 글

(215)
Ch12. File Management Files & File System 컴퓨터는 정보들을 자기 디스크, 자기테이프, 광 디스크와 같은 다양한 저장매체에 저장합니다. 운영체제는 저장장치의 물리적 특성을 추상화하여 논리적 저장 단위인 파일을 정의합니다. 파일은 운영체제에 의해 물리 장치들로 맵핑되고, 일반적으로 비휘발적 성격을 지니고 있어서 전원이 끊어진 이후에도 정보들을 영구히 보존합니다. 파일은 컴퓨터 시스템의 편리한 사용을 위해 정보 저장의 일괄된 논리적 관점을 제공합니다. 일반적으로 레코드 혹은 블록 단위로 비휘발성 보조장치에 저장됩니다. 사용자의 편의를 위해 파일에 이름을 부여하고 하나의 문자열로 나타냅니다. 파일이 만들어지는 순간 그 파일은 프로세스, 사용자, 시스템으로부터 독립하게 됩니다. 파일은 다음과 같은 속성을 지닙니다. 이..
1195. 킥다운 문제의 상황을 고려하려면 작은 부분이 큰 부분을 일직선으로 통과하면 된다. 혹은 반대도 가능하지만 나는 작은거를 기준으로 생각했다. 통과하면서 체크를 해주고 조건에 부합하면 길이를 계산해고 조건에 부합하지 않으면 한칸 옮긴다. 한 칸씩 전진하는 것을 그림으로 나타내보면 다음과 같다. a 배열과 b배열의 숫자의 합이 3이하가 된다면 두개를 조립할 수 있으므로 조건에 부합한다. 이를 바탕으로 코드를 작성하면 다음과 같다. a = input() a = [int(i) for i in a] b = input() b = [int(i) for i in b] ans = [] if len(a) < len(b): a, b = b, a for i in range(len(a) + len(b) + 1): c = [0] * (l..
Ch2. Operating System Overview (3/3) Address Binding 프로세스의 주소(Address)는 논리적 주소(Logical Address)와 물리적(Physical Address)로 나뉩니다. 논리적 주소는 가상 주소(Virtual Address)라고도 하며, CPU가 생성하는 주소입니다. 프로세스마다 독립적으로 가지는 주소 공간이기 때문에 프로세스의 내부에서 사용하고, 각 프로세스마다 0부터 시작합니다. 물리적 주소는 프로세스가 실행되기 위해 실제로 필요한, 실제로 메모리(RAM)에 올라가는 위치를 말합니다. Address Binding은 어떤 프로그램이 메모리의 어느 위치에, 즉 어떤 물리적 주소에 load될지를 결정하는 과정입니다. 이는 binding 시점에 따라 compile time, load time, execution tim..
Ch2. Operating System Overview (2/3) OS Services for Efficient Operation Resource Allocation: 자원: CPU 사이클, 메모리 공간, 메모리 대역폭, 파일 시스템 공간, 파일 입출력 대역폭 Accounting: 어떤 프로세스가 자원을 얼마나 사용했는지 추적 Protection and Security: Multi User 환경에서 시스템 자원으로의 모든 접근은 통제되어야한다. 동시에 Resource에 접근하는 프로세스들이 많을 수 있다. System Calls 시스템 호출(System call)은 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 C, C++와 같은 고급언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에..
16968. 배열 복원하기 문제에서는 원본 배열을 줬고, 배열을 x축 y축으로 이동한 후의 배열까지 줬다. 그렇다면 기본 논리는 이동후의 배열에서 왔던 곳으로 다시 돌아가는 것이다. 그런데 이동후 겹쳤으면 그 수를 더하므로 겹쳤는지 겹치지 않았는지가 매우 중요하다. 문제의 첫번째 예제를 그림으로 표현하면 다음과 같이 겹치는 부분이 생긴다. 이 겹치는 부분은 다르게 관리를 해야 문제를 풀 수 있다. import sys input = sys.stdin.readline h, w, x, y = map(int,input().split()) board = [list(map(int,input().split())) for _ in range(h + x)] prototype = [[0 for _ in range(w)] for _ in range(..
Ch2. Operating System Overview (1/3) Operating System 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 우리가 일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 운영체제에서 관리하고 제어한다. 운영체제의 역할을 크게 2가지로 나눈다면 GUI(Graphical User Interface), Resource Utilization으로 나눌 수 있다. A program that controls the execution of application programs An interface between applications and hardware OS는 프로그램과 하드웨어 사이에서, 프로그램의 실행을 위한 환경을 제공한다. 운영체제의 목적 UI (User Interface) Program execution: 시스템은..
Ch1. Computer System Overview What is an Operating System? → Software that operates a computer system. → Resource utilization and GUI (Graphical User Interface) → There is no one description. The more common definition is that ‘The one program running at all times on the computer.’ (usally called the kernel) 컴퓨터 하드웨어를 관리하는 시스템, 하드웨어의 최상단 소프트웨어의 최하단 컴퓨터 하드웨어와 사용자 사이의 중개인 역할 운영체제는 소프트웨어 오직 OS만이 하드웨어와 직접 소통할 수 있다. program runni..
closure 클로저란. A closure is the combination of a function and the lexical environment within which that function was declared. - MDN 클로저는 렉시컬 스코프에 의존하여 코드를 작성한 결과로 그냥 발생하는 것이다. 모든 코드에서 클로저는 발생하고 사용되고 있다. - You don't know JS 자신을 내포하는 함수의 컨텍스트에 접근할 수 있는 함수이다. - 자바스크립트 핵심 가이드 함수가 특정 스코프에 접근할 수 있도록 의도적으로 그 스코프에서 정의하는 것 - 러닝 자바스크립트 이미 생명 주기가 끝난 외부 함수의 변수를 참조하는 함수 - 인사이드 자바스크립트 자유 변수가 있는 함수와 자유 변수를 알 수 있는 환경의 ..