본문 바로가기

OS/os 공부25

컨텍스트 스위칭과 스와핑의 차이점 참고 : https://www.geeksforgeeks.org/difference-between-swapping-and-context-switching/ 프로그램은 특정한 작업을 수행하도록 설계된 instructions이다. 마찬가지로 프로세스는 프로그램의 runtime instance를 나타낸다. 프로그램을 실행하는 동안 여러 thread가 병렬로 실행될 수 있고 만약 하나의 thread만 존재한다면 스레드 자체를 프로세스라고 부르기도 한다. 컨택스트 스위칭 운영체제는 컨텍스트 스위칭을 사용하여 CPU의 프로세스간 전환시 기존 프로세스의 context를 저장하고 새로운 프로세스를 로딩한다. 현재 실행중인 프로세스의 저장된 상태를 PCB에 복사하고 이후 실행을 재개하거나 다음에 실행할 프로세스의 상태를 .. 2022. 1. 10.
9-3. Virtual Memory (Hybrid paging/segmentation system) Hybrid paging/segmentation system 페이징과 세그멘테이션의 장점만 결합한 시스템으로 프로그램 분할 시 논리 단위의 segment로 분할 후 각 segment를 고정된 크기의 page로 분할하여 메모리 적재 시 page단위로 적재하는 방법을 취한다. Address mapping virtual address: v = (s, p, d)로 구성 s = segment number p = page number d = offset in a page SMT와 PMT를 모두 사용하며 각 프로세스마다 하나의 SMT 각 세그멘트 별 하나의 PMT를 가진다. 최종적으로 page를 메모리에 적재함으로 메모리 관리방식은 FIxed partition multiprogaming과 유사하다. SMT에는 res.. 2022. 1. 6.
9-2. Virtual Memory (Segmentation System) Segmentation System 프로그램을 논리적 block(segment)로 분할하므로 block의 크기가 서로 다를 수 있다. ex) tack, heap, main, procedure, shared lib... 논리적 단위로 나누기 때문에 메모리를 미리 분할하지 않는다. Segment의 공유와 보안이 용이하지만 Address mapping과 메모리 관리의 overhead가 크다. 또한 내부 단편화는 발생하지 않으나 외부 단편화는 발생이 가능하다. Segmentation Address Mapping 가상 주소 v =(s, d) s = segment number d = offset SMT(Segment Map Table) PMT와 다르게 segment length와 protection bits테이블이.. 2022. 1. 6.
9-1. Virtual Memory (Non-continous allocation)_Paging system Non-continuous allocation 사용자 프로그램을 여러 개의 block으로 분할하여 할당하는 것을 말하며 실행시마다 필요한 block들만 메모리제 적재하고 나머지는 Swap device에 존재하게 하는 가상 메모리가 이를 따른다. 메모리 할당 기법으로는 Paiging, Segmentation, Hybrid Paging/segmentation 이 있다 Virtual address(가상주소)/relative address는 논리 수조로 연속된 메모리 할당을 가정한 주소이다. Real address(실제주소)/physical(absolute address 는 실제 메모리에 적재된 주소로 연속되지 않을 수 있다. * Address mapping은 가상 주소를 실제 주소로 바꾸어 주는것이다. Blo.. 2022. 1. 6.
8.Main memory management(2)_Memorry Allocation Countinous Memoty Allocation > 프로세스(context)를 하나의 연속된 메모리 공간에 할당하는 정책이다. ex) 프로그램, 데이터, 스택 등 이렇게 메모리를 할당하기 위해서는 다음 사항을 고려해야 한다. 1. 메모리에 동시에 올라갈 수 있는 프로세스의 수(Multiprogramming degree) 2. 각 프로세스에게 할당되는 메모리의 공간 크기 3. 메모리 분할 방법 Uni-programming 멀티프로그래밍 디그리 = 1 인 프로그래밍 프로세스가 한 번에 하나만 시스템에 올라가는 프로그래밍으로 간단하다 유니프로 그램의 문제점 1. 만약 프로그램의 크기가 메모리의 크기보다 크다면? 어떻게 될까? Countinous Memoty Allocation에서는 프로그래밍 전체가 한 번.. 2022. 1. 1.
8.Main memory management(1)_용어와 개념리마인드 메모리 관련 글 메모리시스템 메모리는 cpu가 프로그램을 실행하거나 데이터를 참조하기위 해 필요한 정보를 불러오는 공간이다. 메모리 계층 구조란 메모리를 필요에 따라 여러가지 종류로 나누어 둔 것으로 위에서부터 CPU younsw.tistory.com 메모리(기억장치)의 종류 피라미드의 위쪽으로 갈수록 메모리 용량은 작아지고 비싸며 빠르고 아래로 갈수록 용량은 크고 저렴하지만 느리다. 캐시 레지스터는 HW(CPU)가 관리하고 메인 메모리, 보 조거 억장 치는 SW(OS)가 다룬다. 메모리를 배우기 전 백그라운드 용어 정리 Block 보조기억 장치에서 주기억 장치로 올리는 데이터의 최소 단위이며 OS에 따라 보통 1~4KB이다. 우리가 1bit을 가 필요하더라도 블록단위로 올라온다 word word는 주기.. 2021. 12. 30.