Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Java
- 나만무
- Vue.js
- 백준
- 티스토리챌린지
- 크래프톤 정글
- 오블완
- CSS
- 4기
- 알고리즘
- corou
- 코드트리
- 소켓
- 시스템콜
- 스택
- 자바
- userprog
- 리액트
- defee
- TiL
- 모션비트
- JavaScript
- 핀토스
- Flutter
- pintos
- 큐
- 크래프톤정글
- 사이드프로젝트
- HTML
- 자바스크립트
Archives
- Today
- Total
미새문지
크래프톤 정글 week09, day71 - Journaling(저널링), Protection(보호) & Isolation(격리), 시스템 콜 순항 중 본문
크래프톤 정글/TIL
크래프톤 정글 week09, day71 - Journaling(저널링), Protection(보호) & Isolation(격리), 시스템 콜 순항 중
문미새 2024. 3. 19. 01:07728x90
Journaling(저널링)
- 파일 시스템이나 데이터베이스에서 데이터의 변경 사항을 안전하게 관리하기 위해 사용하는 Crash Consistent에 대한 기술 중 하나
- 이 접근 방식에서는 데이터를 실제로 수정하기 전에, 모든 변경 사항을 ‘저널’이라고 하는 별도의 공간에 기록하며, 이 정보를 이용해 시스템이 충돌한 후에도 데이터를 안전하게 복구할 수 있다.
저널링의 주요 구성 요소
- 저널(Journal)
- 변경 사항이나 트랜잭션의 로그가 기록되는 공간
- 데이터를 수정하기 전에 예비 기록을 하는 곳으로, 시스템 충돌 시 복구의 근거가 된다.
- 메타데이터(Metadata)
- 파일의 이름, 크기, 위치 등 파일에 대한 정보를 수정할 때, 이 메타데이터 변경 사항도 저널에 기록된다.
- 데이터(Data)
- 사용자 또는 응용 프로그램에 의해 생성되고 수정되는 실제 내용이며, 저널링을 사용하는 시스템에서는 데이터 변경 전에 해당 변경 사항을 저널에 기록한다.
저널링의 작동 과정
- 변경 사항 기록
- 파일 시스템이나 데이터베이스에 수정이 필요한 경우, 해당 변경 사항을 먼저 저널에 기록한다.
- 변경 사항 적용
- 저널에 안전하게 기록된 후, 실제 데이터 또는 메타데이터에 변경 사항을 적용한다.
- 저널 업데이트
- 변경 사항이 성공적으로 적용되면, 저널에 이를 반영해 업데이트 하는데, 이는 해당 변경 사항이 완료되었음을 의미한다.
저널링의 장점
- 데이터 무결성 보장
- 시스템 충돌이나 갑작스러운 전원 손실과 같은 예외 상황에서도 데이터의 일관성과 무결성을 유지할 수 있다.
- 복구 시간 단축
- 예외 상황 발생 시, 저널에 기록된 최근 변경 사항을 참조해 빠르게 시스템을 복구할 수 있다.
- 성능 향상
- 일부 저널링 시스템에서는 변경 사항을 효율적으로 관리하며, 성능 저하를 최소화하는 방법으로 저널링을 구현한다.
저널링 모드
Linux의 Ext3 파일 시스템은 다음 세 가지 저널링 모드를 지원한다.
- Journal
- 메타데이터와 데이터 모두를 저널에 기록한다.
- 가장 안전하지만 성능이 제일 느리다.
- Ordered
- 기본 모드로, 메타데이터만 저널에 기록하고 데이터는 일정 순서대로 디스크에 쓰인다.
- Writeback
- 메타데이터에 대한 변경만 로그를 남긴다.
- 데이터와 메타데이터간의 쓰기 순서는 보장되지 않아 성능이 가장 빠르다.
Protection(보호)
- 시스템 내의 자원들(하드웨어, 소프트웨어, 데이터 등)이 무단 접근, 변경, 파괴로부터 안전하게 보호될 수 있도록 하는 메커니즘을 의미한다.
- 시스템 보호의 주요 목적은 사용자나 프로세스가 시스템 자원을 안정적이고 정당하게 사용하도록 보장하는 것이다.
주요 보호 메커니즘
- 인증(Authentication)
- 사용자나 프로세스의 신원을 확인하는 과정이며, 비밀번호, 생체 인식 등 다양한 방법이 있다.
- 권한 부여(Authorization)
- 인증된 사용자나 프로세스가 특정 자원에 접근할 수 있는 권한을 부여하는 과정이다.
- 예를 들어, 파일 시스템에서 특정 파일에 대한 읽기/쓰기 권한을 설정할 수 있다.
- 접근 제어(Access Control)
- 시스템 자원에 대한 접근을 제어하는 정책과 절차이다.
- ACL(Access Control List)이나 RBAC(Role-Based Access Control) 같은 메커니즘이 사용된다.
Isolation(격리)
- 시스템 내의 프로세스나 애플리케이션이 서로 독립적으로 실행될 수 있도록 보장하는 메커니즘이다.
- 격리는 서로 다른 프로세스 간의 부정적인 상호 작용을 방지하고, 시스템의 안정성과 보안을 향상시키는데 중요하다.
주요 격리 기술
- 프로세스 격리
- 운영체제는 각 프로세스에 대해 독립된 메모리 공간을 할당하여 실행한다.
- 이를 통해 한 프로세스가 다른 프로세스의 메모리 영역에 접근하는 것을 방지한다.
- 가상화(Virtualization)
- 하나의 물리적 시스템 위에서 여러 개의 가상 시스템을 생성하고 실행할 수 있다.
- 각 가상 시스템은 서로 독립적으로 작동하며, 시스템 자원을 격리하여 사용한다.
- 컨테이너(Containerization)
- 애플리케이션을 실행하는 데 필요한 코드와 종속성을 함께 묶어, 다른 애플리케이션과 격리된 환경에서 실행할 수 있도록 한다.
- Docker가 이러한 컨테이너 기술을 대표적으로 사용하는 예시이다.
Protection과 Isolation은 모두 시스템의 안정성을 유지하고, 사용자 및 애플리케이션 간의 충돌을 방지하기 위한 필수적인 요소이다. 이러한 메커니즘을 통해 시스템은 안정적으로 운영될 수 있으며, 데이터와 자원의 보안을 강화할 수 있다.
이론 마스터 강민님이 치명적인 에러를 해결해 준 후 코드를 이해해가면서 순항 중이다. 비록 메인 시스템콜인 fork와 exec , write가 남았지만 진전도 있고 막혔던 부분이 뚫렸기 때문에 의욕이 생겨 열심히 하고 있다.
내일은 퀴즈가 있어 강민님한테 키워드 질문을 받으며 야무지게 혼났다.
728x90
'크래프톤 정글 > TIL' 카테고리의 다른 글
크래프톤 정글 week09, day73 - inode, pintos project 2 end (1) | 2024.03.20 |
---|---|
크래프톤 정글 week09, day72 - 32bit OS vs 64bit OS, Segmentation Fault, Interrupt, 시스템 콜 도돌이표 (3) | 2024.03.20 |
크래프톤 정글 week09, day70 - fsync(), Crash Consistent, 시스템 콜 구현 에러 해결 (2) | 2024.03.17 |
크래프톤 정글 week09, day69 - VFS Layer, Generic Block Layer, 시스템 콜 무한 에러 중 (1) | 2024.03.17 |
크래프톤 정글 week09, day68 - 시스템 콜 구현 막혀있는 중 (2) | 2024.03.16 |