Memory Management
��èѴ˹��¤����� �繧ҹ���ҧ˹�觢ͧ�����
���˹��¤������ջ���ҳ�ҡ �մ��������ö㹡�÷ӧҹ���������鹴��� ���������դ�����Ѻ�Ѻ������դ�������ö�ҡ���ͧ���˹��¤������ҡ �֧���繵�ͧ��˹��¤����ӷ������������Դ����ª���٧�ش ˹�ҷ��ͧ������� ��������������ж١����ҧ����˹��¤����ӵç����? ������? ˹��¤������˹��ö١���������ѧ? ������˹������˹��¤����ӡ�?
��èѴ˹��¤����Ӣͧ����� ���Ըա�èѴ���� 3 ���ҧ���
1. �Ըա���� (fecth strategy)
2. �Ըա���ҧ (placement strategy)
3. �Ըա��᷹��� (replacement
strategy)
��èѴ���˹��¤�����
�ء������դ������繵�ͧ��˹��¤�������к� �����ҡ�����¢������Ѻ��÷ӧҹ��Т�Ҵ�ͧ����� ������зӧҹ�����������ѹ��١����ҧ (Load) ����˹��¤�����������ҹ�� ��÷���������������˹��¤����Ӣͧ�к������С�èѴ���˹��¤�����(Memory allocation) �ͧ�����
- ��èѴ���˹��¤�����Ẻ������ͧ�����ؤ����ͺ��ͧ˹��¤���������������ҧ � ����Ẻ������ͧ������ ��� �����˹�� � �ж١��Ŵŧ˹��¤�����������������˹��¤����Ӣ�Ҵ�˭�ͷ���ҧ�鴢ͧ��������ŧ价�������
��蹤�������������Դ��͡ѹ�˹��¤����Ӽ���ǡѹ ����ҡ����շ����ҧ�������зӧҹ����騹���Ҩ��վ�鹷������;�
- ��èѴ���˹��¤�����Ẻ��������ͧ��ä�ͺ��ͧ˹��¤�����Ẻ��� ���������ж١���͡�繡����������ǹ���� � ������ǹ �����������١�ѹ ������ǹ�ж١��Ŵŧ���˹��¤����ӵç�˹�������վ�鹷����ҧ�� ������ǹ�����繵�ͧ���§�繼������
�����������(Single program)
�����������к���������ö�ѹ������ͧ���������§������ 1 �������ҹ�� ����ö����ǹ�ͧ˹��¤������͡�� 2 ��ǹ���
1. ��ǹ�ͧ�����
���˹��¤����ӷ��١��ͺ��ͧ������� ���ҧ����Һ�ѹ�������ʡ���������蹡ѹ ����ʨФ�ͺ��ͧ˹��¤����ӷ�������ҹ㴴�ҹ˹�����ͷ�� 2 ��ҹ ��������鹷���������ǵ�����ͧ�繼�˭�����
2. ��ǹ�ͧ����� (User area) �����ǹ�������ö��������ͧ�������ҧ�� �ѧ������ǹ�����˹��¤����ӷ������ͨҡ��ǹ�ͧ�����
����������
��÷ӧҹ�ͧ�������ǹ�ҡ����������仡Ѻ��÷ӧҹ��ҹ Input-Output ����繧ҹ�������ͧ��Cpu �ѧ������ҷ����վ��٨�ԧ � ����չ����ҡ��к����������� ��ǧ���ҷ���͡�÷ӧҹ�ͧ routine �ҧ�Թ�ص-��ҵ�ص �վ��٨������� (idle) �����ӧҹ
�ѧ���㹪�ǧ���ҹ�����حҵ��������������������վ������ѹ�֧������� �ǤԴ���֧���ҧ����������������ö�ѹ������ � �������������ǡѹ ���¡�к��������к���������� (Multiprogramming) ����ͤ�������ö�ѹ���������������� � �ѹ�֧���繵�ͧ�� partition ˹��¤������͡����ǹ � ����Ѻ�������������������л��ѹ �����������ѹ����������������
�Ըշ�������������������ö�ӧҹ�����������������Ẻ �Ҩ�Ѵ��������ѧ���
1. �к����������Ẻ��˹��¤����� (partition multiprogramming) �˹��¤����Ө������������ � ��������������ѹ����˹��¤���������ǹ � � ��ǹ˹�� �
�����������§��������� �������ҧ � �Ф�ͺ��ͧ˹��¤�����Ẻ������ͧ���ǹ����ѹ��ͺ��ͧ�к��Ҩ���¡���ա 2 ��������� 1. �����˹��¤����Ӣ�Ҵ����� (Fixed partition multiprogramming) ��С����˹��¤����Ӣ�Ҵ��褧��� (Variable partition multiprogramming)
2. �к����������Ẻ��Ѻ˹��¤����� (Multiprogramming with storage swaping)
�����˹��¤����Ӣ�Ҵ����� �Ըչ��˹��¤����Ӷ١���͡��������ǹ ������ǹ�բ�Ҵ���������������������������� �ѧ��鹨ӹǹ��������зӧҹ�������ѹ����ҡѺ�ӹǹ�ͧ��ǹ���¢ͧ˹��¤�����
-
����ŧ�����Ŵ���¤�������ó� (Absolute translation and loading) �ҹ����������ͧ�����١������������ͧ���¤���ʹ��������ó� ����������ѹ�����ǹ����˹���ҹ�� ����ʹ��������ó��ͤ���ʹ��ʨ�ԧ � �˹��¤����� �蹤���觡��ⴴ价���ʹ��� 5000 ��� 5000 �������ʹ��� 5000 �˹��¤����Ө�ԧ � ����Ѻ��á�˹������������������ǹ㴢������Ѻ��Ҵ�ͧ�������Т�Ҵ�ͧ��ǹ�������˹��¤����Ӵ��� �� ��ǹ���1 �բ�Ҵ 5 kb ��ǹ���2 �բ�Ҵ 10 kb ��ǹ���3 �բ�Ҵ 50 kb ���������բ�Ҵ��硡��� 50 kb ���˭���� 10 kb�ж١�Ѵŧ���ǹ��� 3 ���������բ�Ҵ��硡��� 10 kb ���˭���� 5
kb �ж١�Ѵŧ���ǹ��� 2 ������������բ�Ҵ��硡��� 5 kb �ж١�Ѵŧ���ǹ��� 1 ������¢ͧ�Ըչ���� ������������������ѹ���� ������ǹ�ͧ˹��¤����ӷ���ѹ�ж١��Ŵ仡��ѧ�١������������ �ѹ��ͧ�ͨ������������鹨����� �֧��������ǹ����ѧ��ҧ�������
- ����ŧ�����Ŵ���¤������ѷ��(Relocatable translation and loading) ������ѭ�ҷ���Դ��鹢ͧ����ŧ�����Ŵ���¤�������ó� ������ж١�ŧ����������ʹ��ʷ���繤������ѷ��Ѻ�ش������鹢ͧ����� �ش������鹢ͧ���������ʹ��� 0 ����դ���觡��ⴴ价���ʹ��� 50 ��� 50 �������¶֧�ʹ��ʷ����ҧ�ҡ�ش������� 50 亵�
��������������١��Ŵŧ����ʹ���������鹷�� 5000 �˹��¤����� ���ⴴ价���ʹ��� 50 �����¶֧��á��ⴴ价���ʹ��� 5050 �˹��¤����� ����ŧ��С����Ŵ���¤������ѷ������������١��Ŵŧ��ǹ㴡���ͧ˹��¤�����(���ͧ�բ�Ҵ�ҡ����������ҡѺ��Ҵ�ͧ��������)
��èѴ�觾�鹷���˹��¤����������Ҩ����Ը�㴡���������ͧ�Դ��ǹ������١��ҹ ���¡����Դ���ᵡ��Ш�� (Fragmentation) 㹡�èѴ���Ẻ��˹��¤����Ӣ�Ҵ����� ���ᵡ��Ш���Դ����� 2 �óդ�͡ó���ǹ���١�觢ͧ˹��¤����������١��ҹ���¡����� ���ᵡ��Ш����¹͡(External fragmentation) ��Сóշ��������ͧ�����
�����ͷ�����ǹ�������������¡����繡��ᵡ��Ш������(Internal fragmentation)
�����˹��¤�������褧���
������ҧ���������˹ѡ�֧������¢ͧ�����˹��¤����Ӣ�Ҵ����� �֧�Դ��Ҥ�û�Ѻ��ا�����˹��¤��������բ�� �֧����¹�Ը���˹��¤����������� ����ʨ��������������ͺ��ͧ˹��¤������ҡ��ҷ���������ͧ��� ����ա�èӡѴ�ͺࢵ�ͧ��ǹ���� � ������ա���� �Ըա�ù��֧���¡��ҡ����˹��¤����Ӣ�Ҵ��褧���
�к������������������˹��¤����Ӣ�Ҵ��褧����ѧ���繡�èѴ���˹��¤�����Ẻ������ͧ �������ö�ѹ�������Ҵ�˭����㴡���
�������˭��Թ���Ң�Ҵ�ͧ˹��¤��������ǹ�ͧ����� ����������ҧ � �բ�Ҵ��硤��������������ö�ѹ�����§ҹ�ҡ�������������բ�Ҵ�˭�������������ѹ�������ӹǹ����ŧ �֧�����ҡ����˹��¤����Ӫ�Դ�����ҧ��������Դ�ѹ�����������Դ��鹷����ҧ ����٭�������ͷ���˹��¤��������ͧ�ҡ�����١��ҹ���ѧ�Դ����� �ó��á�Դ�ҡ��鹷����������ǹ�ش�����Ҩ�������§��硹��������§������Ѻ������ � �ա�ó�˹�觤�� ������������������ ������͡�ҡ�к���ͧ���鹷��˹��¤����ӷ���ѹ��ͺ��ͧ�������Ѻ�к� �ѧ��鹨֧�Դ�����ͷ����ҧ��� ���ͷ����ҧ����ҹ�����¡��Ҫ�ͧ����������� (Hole)