Computer Science/Operating System
-
Why Disks?여전히 가격 차이는 대략 100배 정도→ storage가 RAM보다 저렴하기는 하다.추가적으로 memory는 volatile이지만, disk는 non-volatile이다.그래서 어떻게 구성을 할 것 인가에 대한 고민을 하기 시작함→ 파일이 커져서 모든 파일을 다 RAM에 담을 수 없다.Anatomy of a Disksector들이 partition된 것이 track이다.그리고 각 platter들은 여러 개의 track으로 구분된다.cylinder : 각 platter에 존재하는 동일한 반지름을 가진 track들의 집합💡platter의 윗면/아랫면 모두 다 사용할 수 있다.💡추가적으로 track의 반지름이 다르므로, 1개의 track에 들어가있는 sector의 개수가 다를 수 있다.💡Po..
12. Storage StructureWhy Disks?여전히 가격 차이는 대략 100배 정도→ storage가 RAM보다 저렴하기는 하다.추가적으로 memory는 volatile이지만, disk는 non-volatile이다.그래서 어떻게 구성을 할 것 인가에 대한 고민을 하기 시작함→ 파일이 커져서 모든 파일을 다 RAM에 담을 수 없다.Anatomy of a Disksector들이 partition된 것이 track이다.그리고 각 platter들은 여러 개의 track으로 구분된다.cylinder : 각 platter에 존재하는 동일한 반지름을 가진 track들의 집합💡platter의 윗면/아랫면 모두 다 사용할 수 있다.💡추가적으로 track의 반지름이 다르므로, 1개의 track에 들어가있는 sector의 개수가 다를 수 있다.💡Po..
2023.07.02 -
What is I/O systemFile system과 마찬가지로 I/O 또한 abstraction을 잘 하는 것이 중요하다.단순히 음원을 출력하는 것이라도 다양한 I/O 장치에 대한 입출력이 요구되는 것을 확인할 수 있다. User 입장에서 정확한 procedure를 모르더라도 kernel이 잘 관리해주어야 한다는 측면이 존재한다.이번 챕터에서는 빨간색으로 표시된 I/O와 관련된 것을 다루고자 하는 것. 직접적인 HW access를 통해 I/O access가 되는 상황이다. 여러 I/O 장치를 컨트롤 하기 위해서 I/O bus가 존재한다. 하지만 I/O 별로 속도가 다르다는 문제점이 발생한다.I/O controller는 interrupt 를 통해 CPU와 소통한다.나머지 I/O controller는 자..
11. I/O SystemsWhat is I/O systemFile system과 마찬가지로 I/O 또한 abstraction을 잘 하는 것이 중요하다.단순히 음원을 출력하는 것이라도 다양한 I/O 장치에 대한 입출력이 요구되는 것을 확인할 수 있다. User 입장에서 정확한 procedure를 모르더라도 kernel이 잘 관리해주어야 한다는 측면이 존재한다.이번 챕터에서는 빨간색으로 표시된 I/O와 관련된 것을 다루고자 하는 것. 직접적인 HW access를 통해 I/O access가 되는 상황이다. 여러 I/O 장치를 컨트롤 하기 위해서 I/O bus가 존재한다. 하지만 I/O 별로 속도가 다르다는 문제점이 발생한다.I/O controller는 interrupt 를 통해 CPU와 소통한다.나머지 I/O controller는 자..
2023.07.02 -
Motivation예전에는 storage가 비쌌음. 어떻게 stroage를 관리할 것인가에 대한 issue. 특히 1990년대 이후에는 멀티미디어 파일을 관리해야하는데, 이에 대한 metric은 끊기지 않고 가져와야하는 것으로 바뀜. 그리고 현대에는 큰 데이터를 다뤄야하는 문제가 발생하게 됨→ 즉, 시대가 변함에 따라 optimal한 기준이 바뀌게 됨추가적으로 file system은 잘못만들면 파일이 날라가는 critical한 문제가 있음. 그래서 따른 OS 영역보다 천천히 발전됨. (Robustness에 대해 계속 검증이 이뤄짐)→ OS 입장에서는 file system이 바뀌어도 코드를 안바뀌고 싶음. 그래서 등장한 개념이 virtual file system💡추가적으로 process management..
10. File SystemMotivation예전에는 storage가 비쌌음. 어떻게 stroage를 관리할 것인가에 대한 issue. 특히 1990년대 이후에는 멀티미디어 파일을 관리해야하는데, 이에 대한 metric은 끊기지 않고 가져와야하는 것으로 바뀜. 그리고 현대에는 큰 데이터를 다뤄야하는 문제가 발생하게 됨→ 즉, 시대가 변함에 따라 optimal한 기준이 바뀌게 됨추가적으로 file system은 잘못만들면 파일이 날라가는 critical한 문제가 있음. 그래서 따른 OS 영역보다 천천히 발전됨. (Robustness에 대해 계속 검증이 이뤄짐)→ OS 입장에서는 file system이 바뀌어도 코드를 안바뀌고 싶음. 그래서 등장한 개념이 virtual file system💡추가적으로 process management..
2023.07.02 -
Motivating Examplen의 주소를 출력하는 예시만약 두 사람이 동일한 프로그램을 동시에 실행 시켰다고 했을 때 결과가 어떻게 되는가?결과가 같다.출력되는 주소는 physical memory가 아니라 logical(virtual) memory이다. 즉 누가 수행하더라도 동일한 logical address가 출력되게 된다. 즉 programmer입장에서는 logical address만 다루게 된다.💡logical address는 compile하는 과정에서 이미 결정되어 있다.Virtual AddressesProcess의 address space는 virtual(logical) address이다. physical address와는 별개이다. logical address는 cpu architectur..
9. Virtual MemoryMotivating Examplen의 주소를 출력하는 예시만약 두 사람이 동일한 프로그램을 동시에 실행 시켰다고 했을 때 결과가 어떻게 되는가?결과가 같다.출력되는 주소는 physical memory가 아니라 logical(virtual) memory이다. 즉 누가 수행하더라도 동일한 logical address가 출력되게 된다. 즉 programmer입장에서는 logical address만 다루게 된다.💡logical address는 compile하는 과정에서 이미 결정되어 있다.Virtual AddressesProcess의 address space는 virtual(logical) address이다. physical address와는 별개이다. logical address는 cpu architectur..
2023.07.02 -
Memory Management왜 memory management를 고민해야하는가?기본적으로 여러 개의 process를 concurrent하게 돌려야 한다.Multiprogramming의 요구사항은 무엇인가?Protection : 한 프로세스가 다른 프로세스의 메모리 공간을 건드려서는 안됨💡paging의 경우에는 해당 process에 대응되는 frame만 page table을 통해 접근이 가능하므로 protection issue가 해결이 된다.메모리 하드웨어를 적절한 시점에 업데이트를 해줘야함 (주소 변환/ 보호이슈). 따라서 이 작업이 효율적으로 수행되어야 함.Memory management의 정의는 무엇인가?여러 개의 프로세스가 OS와 하드웨어 에 의해 메인 메모리에 존재할 수 있게끔 하는 작업이다...
8. Memory ManagementMemory Management왜 memory management를 고민해야하는가?기본적으로 여러 개의 process를 concurrent하게 돌려야 한다.Multiprogramming의 요구사항은 무엇인가?Protection : 한 프로세스가 다른 프로세스의 메모리 공간을 건드려서는 안됨💡paging의 경우에는 해당 process에 대응되는 frame만 page table을 통해 접근이 가능하므로 protection issue가 해결이 된다.메모리 하드웨어를 적절한 시점에 업데이트를 해줘야함 (주소 변환/ 보호이슈). 따라서 이 작업이 효율적으로 수행되어야 함.Memory management의 정의는 무엇인가?여러 개의 프로세스가 OS와 하드웨어 에 의해 메인 메모리에 존재할 수 있게끔 하는 작업이다...
2023.07.02 -
The Deadlock ProblemA set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set.💡mutual하게 쓸 수 없는 자원이 현재 다른 프로세스가 가지고 있어서 block된 상황인데, 해당 process 또한 mutual하게 쓸 수 없는 자원을 원함으로써 block된 상황이다.process가 resource의 부족으로 인해 block됨 → 해당 resource를 사용할 수 있을 때까지 block됨근데, 2개의 서로 프로세스가 서로 원하는 경우에는 계속 block되는 상태 (물론 2개 이상의 프로세스가 꼬리를 물어도 dead-lock은 발생한다...
7. DeadlockThe Deadlock ProblemA set of blocked processes each holding a resource and waiting to acquire a resource held by another process in the set.💡mutual하게 쓸 수 없는 자원이 현재 다른 프로세스가 가지고 있어서 block된 상황인데, 해당 process 또한 mutual하게 쓸 수 없는 자원을 원함으로써 block된 상황이다.process가 resource의 부족으로 인해 block됨 → 해당 resource를 사용할 수 있을 때까지 block됨근데, 2개의 서로 프로세스가 서로 원하는 경우에는 계속 block되는 상태 (물론 2개 이상의 프로세스가 꼬리를 물어도 dead-lock은 발생한다...
2023.07.02 -
Synchronizationglobal 자료들을 여러 개의 쓰레드가 동시에 엑세스 할 때 문제가 발생할 수 있음. 결과적으로 공유 자원을 사용하는 과정에서 발생하는 문제라고 생각하면 됨.Producer Consumer problem (코드 암기)→ producer와 consumer의 속도가 차이가 나게 되면, 한정된 버퍼 상에서 문제가 발생할 수 있음 (다 차거나, 다 비거나)→ counter : valid한 변수가 몇 개 있는지이때, counter를 공유하고 있는 상황💡위 자료구조는 원형 큐 자료구조를 활용하고 있음. 만약 producer와 consumer가 서로 다른 cpu에 돌고 있다고 가정일단 쓰려면 register에 load하는 과정을 거쳐야함→ 이 결과를 거치면 4가 됨 (non-determi..
6. Process SynchronizationSynchronizationglobal 자료들을 여러 개의 쓰레드가 동시에 엑세스 할 때 문제가 발생할 수 있음. 결과적으로 공유 자원을 사용하는 과정에서 발생하는 문제라고 생각하면 됨.Producer Consumer problem (코드 암기)→ producer와 consumer의 속도가 차이가 나게 되면, 한정된 버퍼 상에서 문제가 발생할 수 있음 (다 차거나, 다 비거나)→ counter : valid한 변수가 몇 개 있는지이때, counter를 공유하고 있는 상황💡위 자료구조는 원형 큐 자료구조를 활용하고 있음. 만약 producer와 consumer가 서로 다른 cpu에 돌고 있다고 가정일단 쓰려면 register에 load하는 과정을 거쳐야함→ 이 결과를 거치면 4가 됨 (non-determi..
2023.07.02 -
Basic Concepts in Scheduling서버가 어떤 job을 pick해서 돌릴 것인가에 대한 이슈가 scheduling서버 : CPU-process, Disk-I/O, Printer-jobsNonpreemptible vs PreemptibleNonpreemptible : 뺏을 수 없는 것ex) Disk, Printer (생각해보면 자명함)Preemptible : 뺏을 수 있음을 허용함.ex) CPUCPU SchedulingLong term schedulingThe long-term scheduler, also known as the admission scheduler, is responsible for selecting which processes or jobs should be admitte..
5. Processor SchedulingBasic Concepts in Scheduling서버가 어떤 job을 pick해서 돌릴 것인가에 대한 이슈가 scheduling서버 : CPU-process, Disk-I/O, Printer-jobsNonpreemptible vs PreemptibleNonpreemptible : 뺏을 수 없는 것ex) Disk, Printer (생각해보면 자명함)Preemptible : 뺏을 수 있음을 허용함.ex) CPUCPU SchedulingLong term schedulingThe long-term scheduler, also known as the admission scheduler, is responsible for selecting which processes or jobs should be admitte..
2023.07.02