Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Operációs rendszerek Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia.

Hasonló előadás


Az előadások a következő témára: "Operációs rendszerek Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia."— Előadás másolata:

1 Operációs rendszerek Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia Tanszék egyetemi tanársegéd Dokumentum verzió: 0.0.1, DEIK_MIPPOS_2008tavasz_BN_7.odp Debrecen, május előadás – MEMÓRIAKEZELÉS Programozó Páternoszter DE IK mérnök informatikus szak előadás

2 Operációs rendszerek előadás Bátfai, Norbert Debreceni Egyetem, Informatikai Kar, Információ Technológia Tanszék Copyright © 2008 Bátfai Norbert E közlemény felhatalmazást ad önnek jelen dokumentum sokszorosítására, terjesztésére és/vagy módosítására a Szabad Szoftver Alapítvány által kiadott GNU Szabad Dokumentációs Licenc 1.2-es, vagy bármely azt követő verziójának feltételei alapján. Nem változtatható szakaszok: A szerzőről. Címlap szövegek: Programozó Páternoszter, Bátfai Norbert, Gép melletti fogyasztásra. Hátlap szövegek: Belépés a gépek mesés birodalmába. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being: A szerzőről, with the Front- Cover Texts being: Programozó Páternoszter, Bátfai Norbert, Gép melletti fogyasztásra, and with the Back-Cover Texts being: Belépés a gépek mesés birodalmába. Felhasználási engedély A GNU Free Documentation License nem hivatalos magyar fordítása:

3 A hetedik előadás vázlata Elmélet ● Memóriakezelés ● Relokáció és védelem ● Csere (swapping) ● Virtuális memória, lapozás, szegmentálás Példák ● A MINIX3 PM Gyakorlat ● A gyakorlat javasolt témája OR 328 OR3 395

4 Időzít ő taszk Ethernet taszk Lemez taszk Terminál taszk Felhasználói programokInit Processzuskezelé s Megszak., IPC stb. Rendsz er taszk PMFSIS MINIX3 PM servers/pm/alloc.c... /* Memory map for local text, stack, data segments. */ struct mem_map { vir_clicks mem_vir; /* virtual address */ phys_clicks mem_phys; /* physical address */ vir_clicks mem_len; /* length */ };... OR3 447 i servers/pm/mproc.h... struct mproc { struct mem_map mp_seg[NR_LOCAL_SEGS]; /* points to text, data, stack */ char mp_exitstatus; /* storage for status when process exits */ char mp_sigstatus; /* storage for signal # for killed procs */ pid_t mp_pid; /* process id */... include/minix/const.h... #define NR_LOCAL_SEGS 3 /* # local segments per process (fixed) */...

5 include/minix/type.h... typedef unsigned int vir_clicks; /* virtual addr/length in clicks */ typedef unsigned long phys_bytes; /* physical addr/length in bytes */ typedef unsigned int phys_clicks; /* physical addr/length in clicks */... /* Memory allocation by PM. */ struct hole { struct hole *h_next; /* pointer to next entry on the list */ phys_clicks h_base; /* where does the hole begin? */ phys_clicks h_len; /* how big is the hole? */ };... servers/pm/alloc.c... struct hole hole[_NR_HOLES];... phys_clicks alloc_mem(clicks) phys_clicks clicks; /* amount of memory requested */ { /* Allocate a block of memory from the free list using first fit. The block * consists of a sequence of contiguous bytes, whose length in clicks is * given by 'clicks'. A pointer to the block is returned. The block is * always on a click boundary. This procedure is called when memory is * needed for FORK or EXEC. Swap other processes out if needed. */ register struct hole *hp, *prev_ptr; phys_clicks old_base; do { prev_ptr = NIL_HOLE; hp = hole_head; while (hp != NIL_HOLE && hp->h_base < swap_base) { if (hp->h_len >= clicks) { /* We found a hole that is big enough. Use it. */ old_base = hp->h_base; /* remember where it started */ hp->h_base += clicks; /* bite a piece off */ hp->h_len -= clicks; /* ditto */... /* Return the start address of the acquired block. */ return(old_base);... return(NO_MEM); }... OR3 450

6 0x 0 0x80 0 0x ~ 584K 0x = 1M 0xFEC0000 ~254M OR3 470 Betöltési memóriakép (boot image)

7

8 Memóriahasznála t

9 A MINIX3 a memóriában 0x x K, de az előző kernelben 170K Kernel 0x = 1M 0xFEC0000 ~254M PM OR3 146 /usr/src/kernel /usr/src/servers/pm FS RS

10 Tippek a gyakorlatra Végezzünk feladatokat a labor jegyzet fejezete szerint! PP

11 Köszönöm a figyelmet Az előadások és a gyakorlatok kölcsönösen, oda-vissza építenek egymásra. Skype: batfai.norbert MSN: Az óra fóruma:


Letölteni ppt "Operációs rendszerek Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia."