본문 바로가기
반응형

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.
보안의 요건과 보안유지 기법 보안의 요건 기밀성(Confidentiality) : 시스템내의 정보와 자원은 인가된 사용자에게만 접근이 허용되며, 정보가 노출되더라도 읽을 수 없도록 함 무결성(Integrity) : 시스템 내의 정보는 오로지 인가된 사용자만 수정 할 수 있음 가용성(Availability) : 인가 받은 사용자에 데해서는 사용이 용이해야 함 인증(Authentication) : 시스템 내의 정보와 자원을 사용하려는 사용자가 인가된 사용자인지 확인하는 행위 부인 방지(Non Repudiation) : 시스템에 접근하고 데이터를 송•수신한 자가 그 사실을 숨기거나 부인할 수 없도록 증기를 기록•관리 보안유지 기법 외부 보안 시설 보안 : 천채지변이나 외부 침입로부터의 보안 운영 보안 : 전산소 관리 및 경영자들의 정책과.. 2016. 10. 10.
프로세스(Process)와 프로세스 제어 블록(PCB) Process : 실행되고 있는 프로그램(주 기억장치에 올라가 있는 프로그램) Process in memory Stack : Call stack, Local variables in function Heap : 포인터를 위한 메모리 저장공간 (Heap과 Stack은 동적으로 크기가 변하기 때문에 메모리 상에서 멀리 떨어져 있다.) Data : 전역 변수(바뀌지 않는 값) Code : 프로그램 코드 PCB(Process control block : 프로세스 제어 블록) structure that contain information associated with each process- 프로세스가 생성될때 만들어진다.- 모든 프로세스는 고유한 PCB를 갖는다. 프로세스의 현재 상태(Process state, r.. 2016. 10. 3.
분산처리 시스템의 투명성과 구조 분류 분산 처리 시스템의 목적과 장단점 여러 자원을 공유하고 속도 및 용량 등의 효율을 높이기 위한 시스템이다.자원 사용 관점에는 모든 면에서 장점을 가지지만구축의 난이도나 비용적인 측면은 단점이다 분산 처리 시스템의 투명성 투명성(Transparency) : 사용자가 분산된 여러 자원의 위치 정보를 알지 못하고 마치 하나의 커다란 시스템을 사용하는 것처럼 인식하도록 하는 것 위치 투명성 : 분산된 시스템이 어디 있는지는 알 필요 없다. 시스템적으로 알아서 통신해서 돌아가니깐이주 투명성 : 내부적으로 데이터가 이동하는걸 사용자는 알 필요가 없다. 그냥 필요한걸 불러다 사용만 할 뿐복제 투명성 : 내부적으로 데이터가 복제 되는걸 사용자는 알 필요가 없다. 그냥 필요한걸 불러다 사용만 할 뿐병행 투명성 : 병행제.. 2015. 10. 21.
디스크 스케쥴링 알고리즘 Head Pointer = 53Request : 98, 183, 37, 122, 14, 124, 65, 67Range : 0 ~ 199 FCFS : First Come First Served가장 먼저 들어온놈 부터 처리한다. 차례대로 차를 다 더하면 된다.(98 - 53) + (183 - 93) + (183 - 37) + (122 - 37) + (37 -14) + (124 - 14) + (124 - 65) + (67 - 65) = 640 SSTF : Shortest Seek Time First가장 가까운놈 부터 처리한다. 바로 앞에서 처리한 값과 가장 가까운 값의 차를 모두 더한다.(65 - 53) + (67 - 65) + ... + 생략. 답은 236 SCAN (Elevator Algorithm)시작점.. 2014. 10. 17.
접근통제 메카니즘 • 전역 테이블 (Global Table)가장 단순한 구현 방법으로 3개의 순서쌍인 영역, 객체, 주체, 접근 권한을 목록(표) 형태로 구성한 것 파일 \ 사용자 철수 영희 길동 정보처리기사 문제 파일 읽기, 실행 읽기 시험 응시자 파일 읽기, 실행, 기록 읽기 • 접근 제어 리스트(Access Control List)전역 테이블의 열에 해당. 어떤 객체가 영역에 어떤 행위를 할 수 있는지 표현 ex) 철수의 접근제어 리스트 정보처리기사 문제 파일 - 읽기, 실행 ... • 자격 리스트(Capability List)전역 테이블의 행에 해당. 주체에 대하여 저장된 접근 허가 목록 ex) 정보처리기사 문제 파일에 대하여 철수 : 파일 생성, 파일 삭제, 파일 이동 영희 : 파일 복사, 파일 이동 ... • .. 2014. 5. 23.
가상 메모리(Virtual Memory) 이론 및 페이지교체 알고리즘 Virtual Memory 주기억장치의 부족한 physical memory를 보조기억장치를 이용해서 가상으로 늘려 준다. Demand Paging 어떤 것을 하드에 두고 어떤 것을 실제 메모리에 올릴 것인가를 판단하는 기준이다. 여러가지가 있지만 일반적으로 사용되는것이 demand paging이므로 이에 대해서만 설명한다. demand paging은 말 그대로, 어떤 알고리즘에 따라서 미리 올려 두는 것이 아니라 실제 사용되려고 할때(demand 되었을때) 메모리에 올리는 방식을 말한다. 어떻게 보면 무척이나 당연한 이야기이다. 이 방식은 아래와 같은 장점이 있다. Less I/O needed Less memory needed Faster response More users Virtual memory는 .. 2013. 6. 12.
Memory Management 메모리가 무엇인가? 메모리는 어디에 쓰이는가? 이런 기초적인 부분에 대해선 간단하게 언급만 하고 넘어간다. 하드디스크(보조기억장치)에 저장된 프로그램이 CPU에서 실행되려면 필요한 데이터가 메모리(주기억장치)로 넘어 와야 한다. CPU에서 다이렉트로 하드 디스크를 조작하기엔 속도 차이가 엄청나게 많이 나기 때문에 요즘은 CPU가 하드디스크에 직접 접근하는 일은 없도록 되어 있다. 하지만 CPU와 메모리의 속도도 점점 벌어지고 있다. 그래서 나온것이 Cache이다. 하드디스크 - CPU의 속도차이를 해결하기 위해 Memory가 사용되는거랑 같다. (register에 관한 설명은 생략) 여기서는 이정도만 알면 아래 내용을 이해하는데 문제가 없다. 메모리는 하나인데 프로세스는 여러개이다. 이 자원을 어떻게 효.. 2013. 6. 12.
Banker's Algorithm cf. Detection Algorithm Deadlock Avoidance는 거의 뱅커스 알고리즘이 다라고 보면 된다. 이름에서도 알 수 있듯이, 리소스 할당을 돈을 빌려주고 갚은 은행의 업무에 비유하여 고안된 알고리즘이다. 간단하게 예를 들어, 은행에 돈이 1000만원 있다. 그리고 3명의 고객이 은행에서 돈을 빌린다. 은행은 고객이 원하는 돈을 다 빌려 주면 바로 반환 받을 수 있다. 하지만 돈을 다 빌려주기 전까지는 강제로 반환받지 못한다. - 고객1이 총 600만원을 빌리고자 한다. - 고객2이 총 800만원을 빌리고자 한다. - 고객3이 총 400만원을 빌리고자 한다. 지금 현재 상태는 safe하다. 1-2-3, 1-3-2, 2-3-1 등등 모든 경우가 다 가능하다. 한꺼번에 필요한 돈을 다 빌려주고 다시 받은 후 다음 고객에게 빌려주.. 2013. 6. 11.
Deadlock의 발생 조건과 해결법 데드락이 무엇인가? 두개 이상의 프로세스가 서로의 작업이 끝나기만을 기다리고 있어 둘다 영원히 끝나지 않는 상황을 가리킨다. (A set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set) 예를 들어서 semaphores A and B, initialized to 1 Process1 Deadlock Process2 wait(A); wait(B); wait(B); wait(A); 데드락은 어떨 때 일어나나? 아래 4가지 조건이 모두 만족하면 데드락이 발생할 가능성이 있다. 하나라도 만족하지 않으면 절대 발생하지 않는다. Mutual exclusion : .. 2013. 5. 30.
Operating System A computer system can be divided into four components Hardware, Operating System, Application Program, Users(People, machine, other computer) 기본적인 3가지 Process Management Memnory Management Storage Management 정의 OS is resource allocator OS is control program No universally accepted definition 특징 1. I/O devices and the CPU can execute concurrently. I/O CPU는 같이 실행 될 수 있다. 2. Each device controller .. 2013. 4. 12.
반응형