Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //DETTE ER VORES KODE
- public void unpinPage(PageId pageno, boolean dirty) throws IllegalArgumentException {
- FrameDesc fdesc = pagemap.get(pageno.pid);
- if (fdesc == null || pageno == null || fdesc.pincnt == 0){
- throw new IllegalArgumentException("PageID or FrameDesc is null, or page is not pinned.");
- }
- if (fdesc.dirty == false && dirty == true){
- fdesc.dirty = true;
- }
- replacer.unpinPage(pagemap.get(pageno.pid));
- }
- //DETTE ER JERES KODE
- public void unpinPage(PageId pageno, boolean dirty) throws IllegalArgumentException {
- FrameDesc fdesc;
- fdesc = pagemap.get(pageno.pid); // get the framedesc from pagemap
- if (fdesc == null || pageno == null || fdesc.pincnt == 0) {
- throw new IllegalArgumentException("Page is not present or pinned!");
- } else {
- fdesc.pincnt--; // decrease pincnt
- if (dirty) {
- fdesc.dirty = true;
- }
- if (fdesc.dirty == true && dirty == false) {
- fdesc.dirty = true;
- }
- if (fdesc.dirty == false && dirty == false) {
- fdesc.dirty = false;
- }
- clock.unpinPage(fdesc); // notify the clock
- pagemap.put(pageno.pid, fdesc); // put it back into pagemaps
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement