
Allocation of File Data in Disk 디스크에 파일 정보를 어떻게 할당할 것인가를 결정한다. Contiguous Allocation(연속할당) 연속해서 할당하는 방법이다. [장점] - Fast IO : 연속적으로 할당되어 있기 때문에 한 번의 seek 또는 rotation으로 많은 내용을 빠르게 찾을 수 있다. 많은 바이트 transfer용도, realtime file 용도, swapping용도(스와핑은 공간 효율성보다는 속도 효율성이 중요하다) 등으로 사용된다. - Direct access(Random access)가 가능하다. [단점] - 외부조각이 발생한다. - file의 크기를 증가시키는 것이 어렵다. 파일이 커질 것을 대비하여 미리 확보해 놓으면 내부조각이 발생한다. Link..

Bash Communication 지난 시간에 셸 스크립트에 대해 학습했다. bash 커뮤니케이션이는 return 값이 존재한다! C언어로 예를 들면, 0는 시스템의 정상종료, 그외 정수 값은 비정상종료를 의미한다. $? 은 최근 실행한 함수의 return 값을 가진 변수를 출력해준다. 자료구조와 알고리즘 알고리즘은 2가지 특성을 가진다. 1. input, output이 있어야 한다. 2. 유한시간 안에 실행되어야 한다. 자료구조는 데이터를 담는 방식이다. 적절한 자료구조를 사용하는 것이 가장 중요하다. 배열+리스트가 90%, 해시맵까지 포함하면 99% 비율로 많이 사용된다. 하지만 트리 등의 구조도 꼭 알아두자! 알고리즘 성능표기 - 점근적 표기법 : 알고리즘에서 input이 커지면서(x > N, 임의..

File File이란 관련된 정보의 모음(a named collection of related information)이다. 비휘발성 보조기억장치(디스크)에 저장된다. 저장장치를 file이라는 논리적 단위로 볼 수 있게 해준다. 연산에는 create, read, write, reposition, delete, open, close 등이 있다. open의 역할은 파일의 metadata를 메모리에 올리는 것이다. File attribute (metadata) 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보를 뜻한다. 저장위치, 파일의 이름 등의 정보가 있다. Directory 파일의 메타데이터 중 일부를 보관하는 일종의 파일이다. 즉, 디렉토리(폴더)도 파일이다. 연산은 search for a fi..

운영체제가 프로세스에게 어떤 식으로 메모리를 할당하는지 알아본다. CPU가 바라보는 메모리 영역을 가상 메모리 영역이라고 한다. 각 프로세스마다 독자적인 0번지부터 시작하는 가상 메모리 공간을 가지게 된다. (메모리 공간이 4기가라면 모든 프로세스는 본인이 4기가를 모두 사용하고 있다고 생각한다.) 메모리를 적재하는 단위에 따라 요구 페이징(demand paging) 방식과 요구 세그먼테이션(demand segmentation)방식으로 나뉘지만 세부적 구현에서는 요구 페이징 기법만이 사용된다. 요구 페이징(Demand paging) 실제로 필요할 때 페이지를 물리적 메모리에 올리는 기법이다. 메모리 사용량이 감소하고, 입출력 오버헤드도 줄어든다. 따라서 빠른 응답시간을 기대할 수 있으며 더 많은 프로세스..

쉘? 쉘이란 TUI(Text User Inferface - 옛날 버전), CLI(Command Line Interface - 지금 버전) 이라고 불린다. 쉘은 명령어로 프로그램을 실행할 때 사용하는 인터페이스이다. OS와 소통하는 가장 편한 방식은 system call이며, OS와 소통하는 것을 편하게 하려고 인터페이스인 쉘을 사용하는 것이다. 쉘을 왜 배우나? GUI(Graphic User Interface)를 사용할 수 없는 환경을 위해서 사용한다. GUI는 편하지만 무겁잖아! 그래서 일반적으로 서버에 gui를 올리지 않거든 쉘 스크립트? 쉘이나 CLI에서 돌아가도록 작성되었거나 한 운영체제를 위해 쓰인 스크립트다. (출처 : 나무위키) ✨✨✨유닉스, 리눅스에서는 모든 것을 파일 입출력으로 관리한다!..

리눅스를 왜 배워야 할까 리눅스는 IT 산업 전반에 사용되는 운영체제다. 수많은 네트워크, 어플레케이션, DB 등이 리눅스 기반 환경에서 동작한다. -> 동작환경을 이해하기 위해서 오픈소스 코드다. 운영체제 핵심 원리를 소스코드 분석으로 배울 수 있다. 왜 리눅스를 배워야 하는가 참고 글 리눅스의 역사 처음 미닉스 교육용으로 리누스 토발즈가 리눅스를 만들게 되었다. 미닉스란 유닉스 계열 운영체제로 유닉스 교육용으로 만들어 졌다. 유닉스란 처음으로 멀티 프로그래밍을 가능하게 하고, C언어로 만들어져 이식성이 높은 운영체제이다. C언어 전에는 어셈블리어로 OS를 만들었고, 어셈블리어는 정해진 CPU에서만 작동하는 단점이 있어 CPU 마다 다른 어셈블리어로 작성된 프로그램이 필요하다. 유닉스는 오픈소스이지만 ..

물리적 메모리의 할당방식 물리적 메모리는 운영체제 상주영역과 사용자 프로세스 영역으로 나뉜다. OS 상주영역은 interrupt vector와 함께 낮은 주소영역을 사용하고, 사용자 프로세스 영역은 높은 주소 영역을 사용한다. 연속할당 각각의 프로세스가 메모리의 연속적 공간에 적재되는 것이다. 고정분할 방식 : 사용자 프로그램이 들어갈 부분을 파티션으로 미리 나눠놓는 방식이다. 동시에 메모리에 올릴 수 있는 프로램에 제한이 있으며 수행가능한 프로그램의 최대크기에 제한이 있다. 외부조각과 내부조각이 발생할 수 있다. 외부조각은 사용이 안 된 메모리공간이나 현재 상태에서 사용하기엔 작아서 사용될 수 없는 공간을 의미한다. 내부조각은 분할된 메모리 공간을 사용하고 남는 공간을 의미한다. 가변분할 방식 : 미리..

헷갈려서 위의 그림이 정확히 맞는지는 모르겠다. 하지만 요지는 메모리는 주소를 통해 접근하는 저장장치이다. 이 때 효율적인 관리를 위해 페이지 단위로 나눠서 관리한다. 주소 바인딩 주소는 가상주소와 물리적 주소로 나눌 수 있다. 가상주소(virtual address), 논리적 주소(logical address) : CPU에 의해 프로세스마다 독립적으로 만들어진 주소이다. CPU가 가상주소를 바라보고 MMU를 통한 주소변환으로 물리 메모리에 올려 그 주소의 데이터를 사용하게 된다. (가상주소의 개념이 이해하기 어려워 스왑영역과 헷갈려 하기도 했다. 가상주소는 말 그대로 CPU가 바라보는 주소이다. 스왑영역은 메모리 공간이 부족할 때 확장 개념으로 사용하는 별개의 개념이다. 스왑영역은 일반 디스크의 파일시스..
- Total
- Today
- Yesterday
- 글쓰기미션
- CS
- Spring
- 우아한테크코스
- React
- python
- 월간회고
- 알고리즘
- 개발공부일지
- 네트워크
- 카카오
- 객체지향
- 우테코수업
- TIL
- JS
- 내부코드
- JPA
- 모의면접준비
- 인증
- java
- OS
- Transaction
- 회고
- 코드스쿼드
- 마스터즈코스
- DB
- 학습로그
- TCP/IP
- 운영체제
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |