일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MySQL
- 디자인 패턴
- 자바
- 컴퓨터구조
- design pattern
- c언어
- MSA
- redis
- 파이썬
- 네트워크
- Java
- Galera Cluster
- 자료구조
- mongoDB
- spring webflux
- Spring
- react
- Heap
- C
- Proxy
- Kafka
- Algorithm
- 알고리즘
- OS
- Data Structure
- IT
- 운영체제
- JPA
- 백준
- JavaScript
- Today
- Total
목록운영체제 (22)
시냅스

이 글에서는 EC2 스토리지를 증설 시에도 적용이 되지 않는 문제를 살펴봅니다. Linux File System 의 간략한 설명을 함께 합니다. Amazon EBS 볼륨 - Amazon Elastic Compute Cloud 이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오. docs.aws.amazon.com Amazon EBS 는 유연한 볼륨의 변경을 가능하게 합니다. 필요에 의해 스토리지 용량을 증가시킬 때에도 간편하게 사용할 수 있습니다. EC2 에서는 EBS를 기본 Secondary Storage 로 채택하고 있습니다. 이런 변경에 있어 EC2 인스턴스의 EBS 볼륨 크기를 증가시켰음에..

파일 시스템 구조, File-System Structure 파일시스템은 쉽게 데이터를 저장하고, 찾고 인출할 수 있게 함으로써 저장장치를 더욱 효율적이고 편리하게 사용 고려해야 할 것 사용자에게 어떻게 보여야 할지 파일은 무엇인지, 그 속성 디렉터리 구조 파일에 허용되는 연산 각 층은 낮은 층의 기능을 사용하여 새로운 기능을 만들어 상위층에게 제공한다. 입/출력 제어 층은 장치 드라이버 루틴들과 인터럽트 핸들러로 이루어져 있어서 메모리와 디스크 시스템 간의 정보 전송을 담당한다. 기본 파일 시스템 층은 적절한 장치 드라이버에게 저장장치상의 블록을 읽고 쓰도록 일반적인 명령을 내리는 층이다. 파일-구성 모듈 층은 파일과 상응하는 논리 블록을 알고 있다. 논리 파일 시스템 층은 메타데이터 정보를 관리한다. ..

파일 시스템 인터페이스, File-System Interface 파일 시스템은 정보를 저장한 실제적인 파일의 집합체와 시스템 내의 모든 파일에 관한 정보를 제공하는 디렉터리 구조로 구성된다. storage에 logical하게 data를 쓴 것! 파일 연산 파일을 정의하기 위해 OS는 아래의 시스템 콜을 제공한다. 아래는 파일 조작을 위한 최소 연산이다. 파일 생성 : 공간 확보 -> 디렉터리에 포함 파일 열기 : open() 사용 -> fd... 파일 쓰기 : 쓰기가 일어날 위치를 가리키는 쓰기 포인터를 유지해야 한다, 쓰기가 일어날 때마다 갱신된다. 파일 읽기 : 순차적 읽기를 위한 읽기 포인터 유지 및 갱신, 프로세스는 하나의 현재 파일 위치 포인터(ftell)을 가진다. 파일 위치 재설정 : fse..
입출력 시스템, I/O System Web, File 수정, Youtube 시청, game 등 컴퓨터는 입출력 작업을 주로 한다. PCI 버스로 모든 Device 와 연결한다. 메모리 맵드 입출력 Memory-mapped I/O 모든 컨트롤러는 레지스터(제어용 또는 데이터용)를 가지고 있고, 레지스터를 프로세서의 주소 공간으로 사상한다. CPU는 물리 메모리에 사상된 장치-제어 레지스터를 읽고 쓸 때 표준 데이터 전송 명령을 사용함으로써 입출력 요청을 수행하게 된다. 입출력 장치 컨트롤러는 보통 4개의 레지스터로 구성되어 있다. 입력 레지스터 : 입력을 얻기 위해 읽기를 수행한다. 출력 레지스터 : 출력하기 위해 쓰기를 수행한다. 상태 레지스터 : 현재 명령이 완료되었는지, 입력 레지스터로부터 한 바이트..
대용량 저장장치 구조, Mass-Storage Structure 비휘발성인 보조 저장장치 Secondary Storage system HDD, SSD, NVM, magnetic tapes... 메인메모리에 프로그램을 전부 올릴 수 없기 때문에 사용한다. HDD Scheduling 접근 시간이나 탐색 시간을 최소화한다. 탐색 시간 : 어떤 device의 arm이 head를 움직이는데 특정 cylinder의 특정 sector를 찾는 것 대역폭을 최대화한다. 대역폭 : 전송된 총 바이트 수 / 첫 서비스 요청 시간 - 마지막 전송 완료 시간 (완료시간 - 요청시간) FIFO Scheduling 온대로 받는다. SCAN Scheduling 진행 방향이 맞는 순서로 처리한다. Elevator Algorithm C..
Chapter 10 Virtual Memory 물리 메모리와 논리 메모리를 완전히 분리하여 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법이다. 가상 메모리를 정의하고 그 이점을 설명한다. 요구 페이징을 사용하여 페이지가 메모리에 적재되는 방법을 설명한다. 페이지 교체 알고리즘에 대해 알아본다. 프로세스의 작업 집합과 프로그램 지역성에 대해 알아본다. 10.1 배경 Background 프로세스 전체가 메모리에 올라와 있다면 항상 메모리에 올라와 있지 않아도 되는 오류 처리 코드, 필요 이상으로 많은 공간을 점유하는 자료구조, 옵션이나 자주 사용되지 않는 기능 등 또한 상주하게 된다. 만일 프로그램을 일부분만 메모리에 올려놓고 실행할 수 있다면, 프로그램은 물리 메모리 크기에 제..

페이징과 스와핑 페이징 Paging 프로세스가 할당되는 물리 메모리를 frame(고정된 크기 block)으로 쪼갬 frame(e.g. 4kb)을 logical memory(e.g. 4kb)와 맞춤 -> page logical memory 와 physical memory를 완전히 분리한다. Os가 Logical 과 Physical을 Mapping 물리주소 공간이 연속적이지 않도록 관리하는 체계 외부 단편화, 관련 압축 필요성 방지 대부분 o/s에서 사용 된다. cpu가 생성하는 논리주소는 Page number(p, 페이지 테이블 인덱스) + Page offset(d, 페이지 내 offset)로 이뤄져 있다. page size는 하드웨어에 따라 다르지만 반드시 2의 거듭제곱 꼴이다. 만약 logical ad..

주메모리의 관리, Main Memory memory에 Load된 program -> process 메모리는 바이트로 이뤄진 주소를 배열로 한다. PC(Programcounter) -> 주소 -> 명령어, 필요하면 더 데이터를 더 가져오거나 내보낼 수도 있다. 기본 하드웨어 Basic HardWare 메모리 CPU는 각 처리 코어에 내장된 레지스터와 메인 메모리에만 접근할 수 있다. 명령어와 데이터들은 CPU가 접근할 수 있는 레지스터와 메인 메모리에 있어야 한다. 캐시 CPU 코어에 내장된 레지스터에는 CPU가 빠르게 접근할 수 있다. 다만 메모리에 접근하는 속도는 상대적으로 느리다. CPU와 메모리 사이에 캐시라는 빠른 속도의 메모리를 추가하여 자주 접근하는 데이터를 캐시에 둠으로써 속도 차이 문제를..
교착상태, Deadlock 어떤 집합 내 모든 프로세스들이 모두 Wait Queue에서 빠져나가지 못하는 상태 다시 말해, 모두 대기하고 CPU를 할당받지 않음 시스템 모델 System Model 시스템은 경쟁하는 스레드들 사이에 분배돼야 할 유한한 수의 자원으로 구성 e.g. CPU가 4개면, 4개의 인스턴스를 가진다. Mutex, semaphore 또한 시스템 자원 프로세스의 자원 사용 순서 요청 : 스레드 -> 자원 요청 (자원을 받을 때까지 대기) 사용 : 자원에 대해 작업 수행 방출 : 스레드가 자원 방출 라이브락 Livelock 또 다른 형태의 라이브니스 장애 교착상태가 같은 스레드 집합 내부에서 같은 집합에 속한 다른 스레드에서만 발생하는 이벤트를 기다리며 봉쇄되는 반면, 라이브락은 스레드가..

뮤텍스 락 Mutex Locks 고급 언어에서 개발한 도구 동기화를 위한 가장 간단한 도구 2개만 가능하다. acquire()을 통해 ciritical section에 진입 허가를 받는다. (원자적 연산) release()를 통해 허가를 반납한다. (원자적 연산) busy waiting -> 무한 루프를 돌면서 프로세스는 낭비된다. spin lock (= busy waiting) core가 여러개 일 때는 busy waiting(= spin lock)은 유용할 수 있다. core 위에서 돌아가고 있어 context switch를 줄여준다. 세마포어 Semaphores 정수 variable binary semaphore -> mutex lock 과 비슷하다. counting semaphore -> 제한 없..