본문 바로가기

학교공부/운영체제

(13)
운영체제 요약 operating system goal computer system 효율적 관리 편리한 인터페이스 hw자원 관리 user program 실행 커널 + 시스템프로그램 = 운영체제 시스템프로그램 = 꼭 깔리는 프로그램 ( 윈도우 탐색기 같은거) cpu가 i/o 컨트롤하기 위한 controller있음 h/w자원 : resource 이런거 복잡해서 관리 대신해주는게 os cpu는 명령내리고 다른거 한다. i/o controller가 일다하면 cpu한테 알려줌 (interrupt) CPU Instruction Set Architecture RISC CISC reduced 적은 명령어로 복잡한 기능을 구현해서 성능이 CISC보다 좋음. Dual Mode operation 1. User mode 2. Monitor ..
Secondary-Storage Architecture 걸리는 시간 Seek > Rotation > Transfer 보통 개인용 pc는 1번 방식 Network attached Storage(NAS) 방식은 TCP나 UDP 통해서 연결 HDD는 disk block 단위로 접근하는 반면 NAS는 file 단위로 read write 한다. Storage-Area Network(SAN) storage 끼리의 network 대용량 저장장치처럼 생각. block 단위 access Disk Scheduling disk time에서 중요한건 seek time seek time에 영향을 끼치는건 seek distance FCFS 개손해 SSTF (shortest seek time first) 가장 최적, 현재 많은 os가 이 방식 사용 중 SCAN 한쪽 끝찍고 반대쪽으로 ..
Implementing File Systems 파일시스템은 크게 두개있다 파일은 전원꺼져도 남아있다 on disk structure 메모리가 어떻게 파일을 변경하고 저장할 것인가 in memory structure On-disk structure 하드디스크 섹터 0에는 Master Boot Record가 저장되어있ek. 거기안에 boot loader가 있다. 부팅시에 커널을 메모리에 올려놓는 역할 딱 처음에 포맷하면 오른쪽과 같은 형태로 포맷된다 boot block : 부팅에 필요한것을 저장하는 block, os kernel같은거 저장 super block : file system 전체에 대한 정보, 파일 시스템 전체 크기 생성 시간 등등 disk block : os가 disk를 다루는 단위 보통 4kb다. bitmaps : disk block이 사..
Virtual Memory Management-2 Least Recently Used (LRU) Algorithm 그렇다면 LRU를 어떻게 구현할까? 1. Timestamp 모든 page마다 counter를 가지게해서 구현한다 2. Stack stack 형태로 구현한다 1, 2번 모두 overhead가 크고 이를 지원할만 한 hw도 없다. 따라서 Referenced bit을 이용해서 Approximation 대충 근사치를 구해보자 referenced bit은 처음 os에 의해 0으로 설정되어있다가 페이지가 참조되었을 때 hw에 의해 1로 set된다. LRU-Approximation 1. Reference bit을 이용하는 방법 각 page마다 8bit짜리 참조비트를 부여한 다음 일정시간(timer interrupt마다 참조되었을경우 shift 연산을 수..
Virtual Memory Management 이전까지 배운건 Virtual physical로 변환하는 방법이다. 이제는 확장해서 Virtual Memory가 어떻게 무한하게 쓰이는지 알아본다. Demand Paging 하드에 저장돼있는 많은 pages중에 필요한 page만 제공한다 이게 어떻게 동작하냐? Locality라는 특성 때문이다. 모든 page를 physical에 올리 필요없이 Locality하게 작동시켜도 문제없다. 어차피 쓰는애들만 쓰고 쓰는애들은 그 주변 pages을 대부분 사용한다. Demand paging 기법을 사용하기 위해 Valid-Invalid Bit을 이용한다. 1 -> in-memory 0-> not-in-memory, 진짜 유요하지 않은경우 8번 이상은 진짜 유요하지 않아서 in-valid고 0~7번이 in-valid..
Memory Management Strategies - 3 Valid (v) or Invalid (i) Bit In A Page Table 9장에서 배울 내용이라 간략하게 설명하면 이전 방식에서 memory protection을 위해서는 address의 시작과 끝만 알고있으면 됐다. 근데 paging하니까 page의 번호를 알고 있어야 한다. 그것도 단순히 시작과 끝이아닌 현재 physical memory 위에 page가 올라가있으면 valid 잠시 하드로 내려가 있거나 사용 불가능하면 invalid를 부여해 메모리를 보호한다. Page 크기가 너무 크다 줄이기위한 설계를 알아보자. Two -Level Paging Example 두개의 계층적 구조로 설계한다. 이런 다단계 paging의 장점은 메모리를 절약할 수 있다. 쪼갠 table이 invalid한 경우 아..
Memory Management Starategies -2 프로그램 내부에서 사용하는 주소 logical(virtual) 실제 메모리에 올라가는 주소 physical 밑에와 같은 프로그램을 실행시켜보면 #include int n = 0; int main () { printf (“&n = 0x%08x\n”, &n); } % ./a.out &n = 0x08049508 % ./a.out &n = 0x08049508 n에 대하여 같은 주소가 나오는데 이는 실제로 같은 physical한 주소로 올라가는 것이 아니다. 프로그램 내부에서 사용되는 주소가 출력되므로 같은 값이 나오는 것이다. MMU 이전 시간에 excution time에 memory를 binding할때 도와주는 hw인 mmu에 대해서 간략하게 배웠다. 이러한 mmu는 어떻게 설계 되어야할가? 첫번째로 할수 있..
Memory Management Starategies 운영체제의 기능 : hw 관리해 주는거 이전에 배운 스케줄링이나 쓰레드는 cpu에 주로 효과적인 전략 이번에는 메모리에서 쓰이는 전략을 알아보자구~ 멀티프로그래밍 환경에서 메모리 사용시 고려할 점이 있다. 이러한 문제를 해결하는 방법이 VM 메모리에는 두 종류가 있다. physical과 virtual(logical) physical은 실제 우리가 보는 메모리이고 virtual(logical)은 프로그램 내부에서 사용되는 주소이다. 가상메모리를 이용해서 physical memory 고려하지 않고 프로그래밍 할 수 있어 편하다 실제 메모리보다 더 큰 영역 제공가능하다 (안쓰는 프로세스 hdd로 잠시 보낸다) 전체 physical memory가 4GB라도 각 process의 주소공간의 합은 이것보다 크게 사용..