Computer Science
-
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 -
Limination of Process ModelProcess model 문제fork를 통해 만들어졌기 때문에 공유가 가능함에도 불구하고 공유할 수 없는 문제가 발생→ 공유할 수 있는 자원이라면 공유하는 것이 유리Multiprocessing 이슈이제는 cpu가 하나의 컴퓨터에 많이 존재할 수 있음. 따라서 지금까지 짠 process를 4개의 process에 분배해서 잘 돌리면 효율이 더 증가하지 않을까결론 resource도 optimize하고, process를 찢어서 여러개의 cpu에 돌릴 수 있게끔 → multithread라는 개념이 등장.Thread Model사실 process model은 사실 매우 무겁다. 리소스도 중복이 많이 되고, fine grane하게 찢을 수 없다는 문제점이 존재.공유 불가..
4. MultithreadingLimination of Process ModelProcess model 문제fork를 통해 만들어졌기 때문에 공유가 가능함에도 불구하고 공유할 수 없는 문제가 발생→ 공유할 수 있는 자원이라면 공유하는 것이 유리Multiprocessing 이슈이제는 cpu가 하나의 컴퓨터에 많이 존재할 수 있음. 따라서 지금까지 짠 process를 4개의 process에 분배해서 잘 돌리면 효율이 더 증가하지 않을까결론 resource도 optimize하고, process를 찢어서 여러개의 cpu에 돌릴 수 있게끔 → multithread라는 개념이 등장.Thread Model사실 process model은 사실 매우 무겁다. 리소스도 중복이 많이 되고, fine grane하게 찢을 수 없다는 문제점이 존재.공유 불가..
2023.07.02 -
What is a Process?Process의 정의 an instance of a running programProgram과 Process의 차이는 무엇인가?→ 돌아가고 있는 프로그램 하나의 instance (Active한 개념), 프로그램을 램에 들고와서 cpu가 active하게 하는 대상. 물론 1개의 프로그램이 여러 process가 될 수 있다. (수행중인 프로그램이 process이다.) Program이라는 것은 passive한 개념이다.Process의 구성요소가 무엇인가?ImageText sectionData sectionHeap sectionmemory that is dynamically allocatedStack sectiontemporary data storage when invoking ..
3. ProcessesWhat is a Process?Process의 정의 an instance of a running programProgram과 Process의 차이는 무엇인가?→ 돌아가고 있는 프로그램 하나의 instance (Active한 개념), 프로그램을 램에 들고와서 cpu가 active하게 하는 대상. 물론 1개의 프로그램이 여러 process가 될 수 있다. (수행중인 프로그램이 process이다.) Program이라는 것은 passive한 개념이다.Process의 구성요소가 무엇인가?ImageText sectionData sectionHeap sectionmemory that is dynamically allocatedStack sectiontemporary data storage when invoking ..
2023.07.02