본문 바로가기

반응형

CS

(14)
싱글톤 패턴 장단점 디자인 패턴이란??프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것을 의미한다싱글톤 패턴하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만 그렇게 하지 않는다보통 데이터베이스 연결 모듈에 많이 사용한다 장점하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어든다 단점의존성이 높아진다단위테스를 할 때 애로사항이 꼽힌다모듈 간의 결합을 강하게 만든다는 싱글톤 패턴의 단점을 의존성 주입(DI, Dependncy Injection)을 통해 모듈 간의 결합을 조금 더 느슨하게 만들어 해결..
운영체제(19) - 디렉토리 구현과 VFS, NFS 디렉토리를 구현하는 공간을 어떻게 할당하고 관리하는가?? Linear list 의 list 구현이 매우 간단하다 디렉토리 내에 파일이 있는지 찾기 위해서는 linear search필요하다 실행 시간이 길다 Hash Table linear list + hashing Hash table은 file name을 이 파일의 linear list의 위치로 바꾸어줌 search time을 없앰 Collision 발생 가능 해시 테이블이 고정된 크기를 갖기에, 크기에 따라서 해시 기능도 제한을 받는다 VFS ( Virtual File System) 서로 다른 다양한 file system에 대해 동일한 시스템 콜 인터페이스(API)를 통해 접근 할 수 있게 해주는 OS의 layer NFS ( Network File Sy..
운영체제(18) -디스크 자유 공간 관리 (Free - space Management) 디스크의 공간은 제한되어 있다. 삭제된 파일들이 차지하던 공간은 새로운 파일들을 위해 재사용되어야 한다. 이러한 자유공간을 관리하는 다양한 방법들이 있다. Bit map or bit vector 자유 공간 리스트는 흔히 비트 맵(bit map) 또는 비트 벡터(bit vector)로 구현 된다. 여기서 각 블록은 1비트로 표현된다. 블록이 자유로우면 그 비트는 1이 되고 만약 블록이 할당되어 있다면 그 비트는 0이 된다. 부가적인 공간을 필요로 함 연속적인 n개의 free block을 찾는데 효과적 Linked List 모든 free block들을 링크로 연결 (free list) 연속적인 가용공간을 찾는 것은 쉽지 않다 공간의 낭비가 없다 Grouping linked list 방법의 변형 n개의 fre..
운영체제(17) - 파일 할당 ( Allocation of File Data in Disk) 연속 할당 ( Contiguous Allocation) 연속된 블록에 파일을 할당하는 것 장점 Fast I / O, 한번의 seek/rotation으로 많은 바이트 transfer Direct access ( = random access) 가능 단점 외부 단편화 ( external fragmentation) File grow가 어려움, 중간중간 hole이 생김 연결 할당 (Linked Allocation) 연결 할당은 연속 할당의 문제점을 해결하기 위해 나온 방법으로, 연속적으로 할당하는 것이 아니라 링크드 리스트(linked list)와 같은 방식으로 파일을 할당 장점 : 외부 단편화 발생 안함 = 디스크 낭비가 없다 단점 직접 접근이 안됨 Reliability 문제 : 한 sector가 고장나 poi..
운영체제(16) - 파일과 파일 시스템 (File and File System) File "A named collection of related information" 일반적으로 비휘발성의 보조기억장치에 저장 운영체제는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해줌 Operation Create , read, write, reposition, delete, open, close 등등.... File attribute (혹은 파일의 metadata) 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들 파일 이름, 유형, 저장된 위치, 파일 사이즈 접근 권한(읽기/ 쓰기/ 실행), 시간(생성/변경/사용), 소유자 등 File System 운영체제에서 파일을 관리하는 부분 파일 및 파일의 메타데이터, 디렉토리 정보 등을 관리 파일의 저장 방법 결정 파일..
운영체제 (15) - 다양한 Caching 환경 Caching 기법 한정된 빠른 공간( = Cache)에다가 요청된 데이터를 저장해 두었다가 후속 요청서 캐쉬로부터 직접 서비스하는 방식 paging system외에도 Cache memory, buffer caching, Web caching등 다양한 분야에서 사용 Caching에서는 시간 제약이 있다. 왜냐하면 더 빠르자고 쓰는 건데 이게 오래걸리면 어불성설이기 때문이다 Buffer caching이나 Web caching의 경우 ... O(1)에서 O( log n )정도까지 허용 Paging system의 경우... Page fault인 경우에만 OS가 관여함 페이지가 이미 메모리에 존재하는 경우 참조시각 등의 정보를 OS가 알 수 없음 O(1)인 LRU의 리스트 조작조차 불가능하 Paging Syst..
운영체제(13) - 프로세스의 메모리 할당 (비연속적 할당 방식) 불연속할당 (noncountiguous allocation) 하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있음 Paging기법 주소변환을 위해 Page table이 필요, PMT ( Page Mapping Table) 논리적 주소를 여러공간(Page)로 쪼갠 것 page table은 Main memory에 상주 Page - table base reigster (PTBR)이 page table을 가리킴 모든 메모리 접근 연산에는 2번의 memory access 필요 -> 이런 메모리의 접근을 줄이고자 나온게 TLB 장점 : 논리 메모리는 물리 메모리에 저장될 때 연속되어 저장될 필요가 없고, 물리 메모리의 남는 프레임에 적절히 배치되기 때문에 외부 단편화가 생기지 않는다. 단점 : 내부 단편..
운영체제(12) - 프로세스의 메모리 할당 (연속 할당 방식) 사용자 프로세스 영역의 할당 방법 Contiguous allocation (연속 할당) : 각각의 프로세스가 메모리의 연속적인 공간에 적재되도록 Noncontiguous allocation (비연속적 할당) : 하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있음 Contiguous allocation 1. 고정 분할 방식 물리적 메모리를 주어진 개수만큼의 영구적인 분할로 미리 나누어두고 각 분할에 하나의 프로세스를 적재해 실행 시킬 수 있게함, 분할의 크기는 모두 동일하게 할 수도 있고, 서로 다르게 할 수도 있다 융통성이 없음 외부 단편화 : 프로그램의 크기보다 분할의 크기보다 작은경우에는 해당 분할이 비어 있는데도 불구하고 프로그램을 적재하지 못하기 때문에 발생하는 현상 내부 단편화 : ..

반응형