본문 바로가기

IT 이론/운영체제16

내부단편화와 외부단편화 정말 쉽게 이해하자 1기가의 메모리가 있다고 가정하자. 1GB 1. 세그먼트 기법일 때 300MB 200MB 100MB 빈공간 200MB 200MB 빈공간 300MB의 빈공간이 있으나 띄엄띄엄 있어서 300MB짜리 프로세스를 올릴수가 없다.이런 상황을외부 단편화(External Fragmentation) 라고 한다. 2. 페이징 기법일 때 메모리를 100MB짜리 페이지로 나눠서 사용한다고 가정하자 350MB의 프로세스를 메모리에 올리려고 한다.그럼 아래와 같이 하나의 페이지는 100MB를 다 쓰지 못하고 50MB만 사용하게 될 것이다. 100MB 100MB 100MB 중 50MB사용 100MB 빈공간 100MB 빈공간 이렇게 페이지 내부에서 공간이 허비되는 것이 내부 단편화(Internal Fragmentation) 이라고.. 2017. 7. 8.
윈도우와 리눅스(유닉스 계열)의 파일시스템 1. 윈도우 파일 시스템 - FAT(File Allocation Table) - DOS때부터 사용되던 윈도우 계열의 파일시스템(현재는 사용 안함)으로 FAT16, FAT32 등이 있다. - 구조가 간단하기 때문에 소형 디바이스, 플로피디스크, 메모리 카드 등에 많이 쓰인다. - FAT(파일 할당 테이블)라는 영역에 파일의 위치를 기록하고 관리한다. - 저용량에 적합하고 보안성이 좋지 못하지만 다양한 운영체제에서 지원하여 호환성이 좋다. - NTFS(NT File System) - FAT를 보완하기 위해 만들어진 윈도우 계열의 대표적인 파일 시스템이다. - 자세한건 이 링크에서(클릭) 2. 유닉스 계열(리눅스) 파일 시스템 - EXT2 : FSCK(File System Check)이라는 파일시스템 검사 및.. 2017. 7. 8.
윈도우 공유폴더 보안 (IPC$의 Null Session Share 취약점) Windows는 관리 목적상 ADMIN$, C$, D$, IPC$ 를 기본적으로 공유하도록 설정되어 있다. 관리측면에서 필요성이 있어서 공유가 되는 것 이겠지만 필수적인 부분은 아니므로 보안성 향상을 위해 공유 설정을 꺼 주는 것을 권장한다. 레지스트리 수정으로 간단히 off시킬 수 있으며 IPC$는 임의로 끌 수 없게 돼 있다. 이런 IPC$의 보안취약점을 해킹에 활용한 사례가 있다. Null Session Share 취약점 윈도우가 설치된 서버에 IPC$를 통한 원격접속을 할 때 패스워드를 Null로 설정하여 접속할 수 있는 취약점을 말한다.공격자가 시스템의 유저명, 공유정보 등을 열람할 수도 있고 일부 레지스트리에 접근할 수 있으며 DoS공격에도 활용 될 수 있다. 2017. 7. 4.
NTFS 파일시스템과 MFT레코드 NTFS : FAT시스템을 대체하기 위해 개발된 윈도우 파일 시스템 - 사용자마다 다른 보안을 적용할수 있다. - 파일과 폴더에 개별적으로 권한을 설정할 수 있으며 폴더에 설정한 권한보다 파일에 설정한 권한이 우선한다. - 시스템 폴더는 Administrators/Power Users 그룹만 수정 가능하다. - 파일 단위로 계정이 언제 파일을 열어보거나, 열려다 실패했는지 알 수 있는 감사(Auditing) 기능이 있다. - 마스터 파일 테이블(MFT)은 각 파일 정보를 포함한 1KB 레코드이며 각 파일별로 1:1 대응한다. - 기본 보안 설정은 Everyone그룹에 대해 모든 권한 허용이다. MFT 레코드 - FAT 파일 시스템에 없는 보안 속성(사용자 접근 제어) 정보를 내장 - 파일 압축 및 암호화.. 2017. 7. 4.
캐시 메모리 매핑 기법 CPU가 특정 값을 취하고자 할 때 그 값이 캐시에 있는 값인지 어떻게 확인할 것인가? 에 대한 고찰이다.국내 시험에선 직접 사상, 연관 사상, 직접/연관 사상이라고 하기도 한다.깊게 들어가서 동작에 대한 예시, 구현방법까지 따진다면 내용이 지나치게 많아지므로 개념만 간단히 정리해 보자면 아래와 같다. 1. 직접매핑(Direct Mapping) 메모리 주소와 캐시의 순서를 일치시킨다. 메모리가 1~100까지 있고 캐시가 1~10까지 있다면 1~10까지의 메모리는 캐시의 1에 위치하고 11~20까지의 메모리는 캐시의 2에 위치시키는 것이다. 구현이 정말 간단하지만 저 규칙을 만족시켜서 캐시를 넣다 보면 캐시가 효율적이지 않게 자꾸 교체되어야 하는 일이 생긴다. 예를 들면 30~40에 해당하는 값을 자꾸 불.. 2017. 6. 25.
CPU 스케줄링 알고리즘 CPU 스케줄링이란?메모리에 있는 준비(Ready) 상태의 프로세스 중 하나를 선택 해 CPU자원을 할당하는 것 CPU 스케줄링이 일어나는 시점CPU자원을 가지고 있다가 빼앗길수 있는 상황은 아래와 같다. 실행(Running)상태에서 대기(Waiting)상태로 전환될 때 (예, 입출력 요청) – Non Preemptive(비선점)실행(Running)상태에서 준비(Ready)상태로 전환될 때 (예, 인터럽트 발생할 때) – Preemptive(선점)대기(Waiting)상태에서 준비(Ready)상태로 전환될 때 (예, 입출력이 종료될 때) - Preemptive(선점)종료될 때(Terminated) - Non Preemptive(비선점) 선점과 비선점의 차이는 기존에 CPU를 사용하던 프로세스가 계속 프로세.. 2017. 5. 29.