operating-system,paging,tlb,page-tables , How to Calculate Effective Access Time

How to Calculate Effective Access Time


Tag: operating-system,paging,tlb,page-tables

Assume TLB hit ratio is 90%, physical memory access takes 100ns, TLB access takes 20 ns, compute the effective access time for a processor that uses two level page tables, and parallel TLB and page table indexing.

This was my formula:

(H)(TLB access time + mem access time) + (1-H)(TLB access + PT access + mem access)

This was my calculation:

EAT = [(.90) * (100ns + 20ns) + (1-.90)(20ns + 100ns*2 + 100ns)] = 130ns

I understand 2* 100ns because of the two-level page table, my confusion was when my professor said the TLB access time 20ns should not be included within the miss calculation.

Could someone please explain the reasoning behind this?


The TLB and PT indexing is assumed to be "parallel". So lookup for TLB and PT are simultaneous.

Upon memory lookup, the processor launches both a PT and TLB query. If the TLB has an answer, it will answer first; that's hit case. If not, the query will continue to run until the PT answers; that's the non-hit case.

The thing of importance is that the PT has already started to look the answer up during the time the TLB determines it cannot answer. So the TLB lookup time should not be taken into account upon a cache miss.


SQL - Paging comments

I have the Table Comment below: CREATE TABLE Comment ( CommentID int, Username nvarchar(50), Content nvarchar(255), ReplyID int, primary key (CommentID), ) ALTER TABLE dbo.Comment ADD FOREIGN KEY (CommentID) REFERENCES dbo.Comment (CommentID) ON DELETE NO ACTION ON UPDATE NO ACTION, And I want to query paging comment in detail product...

Will OS provide virtual address space?

This is an interview question. I am writing all the details the interviewer gave me. The question is:- A system has a memory of 1GB. A process requires only 1MB of memory. Assuming no other processes are running in memory, will the OS provide virtual address translation for this process...

Paging in .NET Web API

I have to do paging for an odata endpoint built using Entity Framework . I know I can do it using private ODataQuerySettings settings = new ODataQuerySettings(); settings.PageSize = myPageSize; // I keep this value in web.config of solution and options.ApplyTo(IQueryable, settings); But I am constrained not to use ApplyTo...

Switch to user space

this is part of code which demonstrates basic functions of os kernel. After flushing GTD and setting up IDT I want to switch to ring 3 run some int and context switch. However I cannot jump to user mode. I want to use trick with iret instruction. As far I...

Not Getting keyboard input in c kernel protected mode

I am making an OS in C and 32bit Assembly following James Molloy's tutorial till IRQs and PIT step and i am trying to get keyboard input i tried this code added to the tutorials' code but i am not able to get things right. Keyboard.c: #include "keyboard.h" #include "common.h"...

about GDT and processes

how does GDT reflected on linear space of process ( if I understand it right, GDTR contains page and offset ) .? or another version of this question : GDTR is unique for each process .?

Will physical addresses of all paging structures in Linux be mapped in the page tables

In 64-bit Linux, IA-32E paging is used with 4 levels of paging structures (PML4/PDPT/PD/PT). The entries in the former three structures give the physical address of the corresponding next structure. My question is that will the physical addresses of all these paging structures be mapped in the paging table? If...

How my computer knows a char corresponds to which character?

Does my OS load a font file which maps the UTF-8 codes to characters(the way to render it ) when I start up my computer? Since there are a lot of different fonts, the font files will consume a lot of memory? Or the font files are stored in hard-disk...

Determine addresses and page table size

I know that this question has been asked many times but I still feel I struggle with it. Given: physical memory: 2^20 32-bit system page size: 2^10 I need to determine what a physical and virtual addresses would look like as well as calculate the page table size. I am...

Datatable show/hide sorting/paging

I have a problem with datatables.net I want to show sorting/paging based on when the screnn width is over 700px and hide it when its under 700px. It works when i go from over 700px to under 700px but when i increase the width again the sorting/paging isnt showing again....

Access paging in iOS - previous and next : retrieved in JSON from facebook graph-api

Access paging in iOS Code from JSON previous and next link In JSON object retrieved from graph api, due to loads of information the information is paged, when I try to access the previous and next link it gives OAuth error. Can anyone help in how to access the link...

C Kernel - Works fine on VM but not actual computer?

I am making a basic C kernel. (Loaded by an assembly program) I am compiling it with an i686-elf cross compiler for windows. My C code is as follows: void cls(); void drawhappy(); void main(){ char *vidptr = (char *)0xb8000; cls(); drawhappy(); } void cls(){ char *vidptr = (char *)0xb8000;...

Trouble outputing file size to a label from a listbox in Python 3

I'm using os.path.getsize() to output the size of a file to a label. The file path is stored in a listbox. The function works, but it outputs the file size in bits, so I wrote the following to convert to more appropriate units, and it is now displaying only in...

can paging be slower/faster than swapping on a machine?

This is a very naive question, but I wonder if there is any comparison that can be made on paging or swapping speed? They are offering the same functionality (moving from memory to disk, etc) but with different strategies (writing frames, or writing down the whole memory). Now the problem...

Need suggestions for Android project

I have been assigned one project of Android, but before taking it I need your advice. I have following low level features I need to hide whole operating system in android and only show my application, even device reboot or reset whenever it start it will show only my application....

How to tell the difference between linux and mac

I am creating a setup file for a tarball, and I need a way to determine the exact name of the system. I tried os.name, but it returns 'posix' regardless of whether the system is mac or linux. Is there a way to get a more specific OS name?...

Interrupt Descriptor Table Gate

I've written this code to create a sample IDT and load it in to the proper register. I've checked Intel System programming guides for proper structures, and yet I can't get interrupts working. While running kernel code in Bochs, and triggering interrupt (using __asm__ ("int $32"); I get a log...

Not checking file size correctly

I wrote a simple script to move movies in my downloads directory, once they are finished downloading, to the location they need to go and have a simple question regarding it. Maybe I'm not understanding how the os module is working to the current size of the file here, but...

Why do we need to install a C++ compiler? [closed]

I have heard that all the popular OSes (Windows, Linux, Mac OS X) are built from C++ or C. Why, then, do we need to install GCC or any C++ compiler? Shouldn't programs be compiled by the computer itself as these operating systems support C++ and C?

Random access alternative to named pipes

Is there a way to create a "file" (i.e. some point in the file system) that can then be opened by any program as a regular file, but reading/writing to it will go to a program instead of to disk? Named pipe seems to meet all the requirements, except it...

Automate MySQL backup @localhost with mysqldump in Windows 8

I'm trying to set up a task in Windows 8 to automate my localhost db dump. I've created the task to run daily with the following command line: C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump.exe and parameters: --user=root --password=donttellya --result-file=dumped.sql mydb It works but doesn't terminate (running in the tasks list). Also, I'd...

Implementing a simple spin lock given some instruction

For instance if have the following code which is some If set then clear and performs atomic in following manner. This is simple C code. int IfSetThenClear(int * ptr) { int actual = *ptr; if(actual== 1) *ptr = 0; return actual; } Now i want to use this given instruction...

Bind multiple threads to multiple CPU?

I have multiple threads that are accessing the same data and it is too painful to make them thread safe. Therefore, they are now forced to run only on one CPU core using CPU affinity and only one thread can be running at the same time. I was wondering if...

^M behind operating system version?

I am currently writing a perl script to extract data from a log file and create statements using the data in a new file. In this new file, one particular data that I've extracted and used here is the operating system's version. It shows Windows XP Service Pack 3^M. I...

Protected mode, setting segment registers

I'm recently playing with gnu-assembler in simple os development. I'm using code below to switch CPU to protected mode. In order to do this I set GDT as follow and performed far jump to given label wit 0x08 as GDT offset (to set CS). CPU did not reset itself after...

About Idle tasks in operating systems

Every system has IDLE task which will be running if no other tasks are ready to run.So my question is , can IDLE task sleep?. My understanding is if idle task sleep then there is a chance of no task is available for the cpu to run. Is my understanding...

How do I fork an external process in java

I'm trying to fork a new external process (such as Calculator) in Java. I'm new to operating systems but I learned that it's possible using something like : Runtime.getRuntime ().exec ("C:\\Windows\\system32\\calc.exe");. However that doesn't actually fork a new process. Is there anyway I can fork an external process using java?

What happens when Binary Semaphore is Signalled twice? ie. s=1;wait(s); signal(s)signal(s); Does s becomes 0 or it remains 1?

What happens when Binary Semaphore is Signalled twice? i.e. Suppose s is binary semaphore variable with s=1 Now we do following-- wait(s),signal(s),signal(s) Does s becomes 0 or it remains 1?...

jqgrid paging on server side

I'm trying to add server side paging to my grid. In adittion, I have a filter by 'license', 'number' and 'group'. When I press the next page button the controller is called and I obtain the data but my grid is reload on page 1 and I cant view the...

Microcontroller specific codes in OS (Contiki)

I am working on creating a port for LPC1347 to contiki-os. I have 2 questions: 1: What i do not understand is how would the os know what architecture the hardware follows ie, whether is Harvard architecture or Neumann architecture. The microcontroller has 2 srams, so does the compiler or...

Android - What is the difference between a foreground and background service?

From android.com it says that a foreground service is something that the user is aware of and a foreground service is unlikely to be killed if memory is needed. It says a background service may be killed if memory is needed. Is this the only difference or can one service...

What is a kernel stack used for?

The following is a description I read of a context switch between process A and process B. I don't understand what a kernel stack is used for. There is suppose to be a per process kernel stack. And the description I am reading speaks of saving registers of A onto...

Difference between switch & bus architecture?

I was just going through a operating systems textbook but I got stuck at switch architecture . Please explain what it is and how it is different from bus architecture ?...

Paging data tables in jQuery

I have a table with more the fifty records in it. I want to display them in pages of five records per page. My current approach uses jquery datatables, as shown below. $(document).ready(function () { var length = $('#data-datatable tbody tr').length; $('#data-datatable').dataTable({ "bFilter": false, "bLengthChange": false, "iTotalDisplayRecords" : 5, "iTotalRecords":...

Coding of Admin-Guest login section in an OS

I developed an authentication algorithm for user authentication as part of my masters thesis and implemented it in PHP. I intend to know how can I implement the algorithm for operating system login, in which language (for linux)? also where the code will reside because it will not be click...

shuting down an OS without using API's

i was trying to add a shutdown feature to my home-made OS , but i don't really have such API yet . i was wondering how does the OS's terminates the power ? i'd be appreciate it if somebody could give me some guidelines for start .

How to detect that music play in background

I want help in detecting if there is a music play in background on the phone or not because I play more than one music sequentially in my app but they are intersection thank you

What is system app [closed]

I have few questions, What is a system application? How do you go about developing system applications? What is the difference between user and system applications? How is it possible for Android devices to have default system applications without having them installed by the user? ...

How to translate these logical addresses into physical addresses?

Given that: Logical addresss space=64 bits Physical address space=32 bits Page size=4K How will the logical addresses 20, 4100 and 8300 be mapped to physical address for the following page table? ...

c - loading raw binaries

Is it possible to execute a raw binary stored in a char array? I tried doing it like so: #include "stdio.h" int main(int argc, char **argv) { FILE *f = fopen(argv[1],"r"); if(!f) return 1; fseek(f,0,SEEK_END); long l=ftell(f); rewind(f); char *buf = malloc(l+1); fread(buf,1,l,f); fclose(f); void (*func)() = (void(*))buf; func(); }...

Not Used Recently (NUR) Page Replacement Algorithm [closed]

How to implement NUR (Not used recently page replacement algorithm) using any high level programming language (c, c++ or java)

How to change ubuntu to root?

I am new to linux. when i list the files under folder 1, i see below result -rwxrwxrwx 1 root root 920 Jun 3 10:36 file1.xsd -rwxrwxrwx 1 root root 920 Jun 3 10:36 file2.xsd drwxrwxrwx 2 ubuntu ubuntu 4096 Jun 12 11:10 temp -rwxrwxrwx 1 ubuntu ubuntu 1853 Jun...

NSUserDefaults not working on Xcode beta with Watch OS2

I just installed the latest beta of Xcode to try Swift 2 and the improvements made to the Apple Watch development section. I'm actually having an hard time figuring out WHY this basic NSUserDefaults method to share informations between iOS and Watch OS2 isn't working. I followed this step-by-step tutorial...

Bound wait to solve race condition

I am trying to Give a race condition example , then write an algorithm to impose synchronization and write an algorithm that implement the Bounded wait solution?! I tried the case of when two admins A and B in the school receive 2 students to register them if they hit...

OS- How to properly print a spacebar in the video memory in a kernel?

I know this the title is weird (I don't know how to explain it :| )but if u see my problem u will get it. I am making an os in assembly and c i have made a kernel and i have text input and output but i am having...

Why does main function differ from other function from stack point of view

I'm studying to use gdb and i got little confused. Here is my code: #include <stdio.h> #include <stdlib.h> #include <string.h> void g(char *password) { } int main(int argc, char *argv[]) { if(argc > 1) { g(argv[1]); } } So with the regular function (g() in this example) if I want...

How does the OS decide data that goes in each page?

I have a comma separated data file, lets assume each record is of fixed length. How does the OS(Linux) determine, which data parts are kept in one page in the hard disk? Does it simply look at the file, organize the records one after the other(sequentially) in one page? Is...

Memory Management (Allocating Pages/Frames to Logical Addresses)

I am new to Operating Systems and I was following this handbook which I am reading to get a better grasp on how computers really work. However having stumbled upon Memory Management I found it somewhat confusing when allocating Frames to Pages using Page tables. Say Page/Frame size is 4K...

What does a valid idle thread implementation look like?

It is well known that a busy waiting is bad because it wastes CPU time. But what is done in modern operating systems to make the OS idle thread work well? Is it just a busy wait? If so, what is done to conserve power? What is the best approach?...