1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Leya [2.2K]
3 years ago
14

There will be 10 numbers stored contiguously in the computer at location x 7000 . Write a complete LC-3 program, starting at loc

ation x3000, that will find the location of the smallest number and swap its location with the number in location x7000. For example, Suppose the following numbers are stored at location x7000:
Computers and Technology
2 answers:
Artist 52 [7]3 years ago
7 0

Answer:

The LC-3 (Little Computer 3) is an ISA definition for a 16-bit computer. Its architecture includes physical memory mapped I/O via a keyboard and display; TRAPs to the operating system for handling service calls; conditional branches on N, Z, and P condition codes; a subroutine call/return mechanism; a minimal set of operation instructions (ADD, AND, and NOT); and various addressing modes for loads and stores (direct, indirect, Base+offset, PC-relative, and an immediate mode for loading effective addresses). Programs written in LC-3 assembler execute out of a 65536 word memory space. All references to memory, from loading instructions to loading and storing register values, pass through the get Mem Adr() function. The hardware/software function of Project 5 is to translate virtual addresses to physical addresses in a restricted memory space. The following is the default, pass-through, MMU code for all memory references by the LC-3 simulator.

unsigned short int get Mem Adr(int va, int rwFlg)

{

unsigned short int pa;

// Warning: Use of system calls that can cause context switches may result in address translation failure

// You should only need to use gittid() once which has already been called for you below. No other syscalls

// are necessary.

TCB* tcb = get TCB();

int task RPT = tcb [gettid()].RPT;

pa = va;

// turn off virtual addressing for system RAM

if (va < 0x3000) return &memory[va];

return &memory[pa];

} // end get MemAdr

Simple OS, Tasks, and the LC-3 Simulator

We introduce into our simple-os a new task that is an lc3 Task. An lc3 Task is a running LC-3 simulator that executes an LC-3 program loaded into the LC-3 memory. The memory for the LC-3 simulator, however, is a single global array. This single global array for memory means that alllc3 Tasks created by the shell use the same memory for their programs. As all LC-3 programs start at address 0x3000 in LC-3, each task overwrites another tasks LC-3 program when the scheduler swaps task. The LC-3 simulator (lc3 Task) invokes the SWAP command every several LC-3 instruction cycles. This swap invocation means the scheduler is going to be swapping LC-3 tasks before the tasks actually complete execution so over writing another LC-3 task's memory in the LC-3 simulator is not a good thing.

You are going to implement virtual memory for the LC-3 simulator so up to 32 LC-3 tasks can be active in the LC-3 simulator memory without corrupting each others data. To implement the virtual memory, we have routed all accesses to LC-3 memory through a get Mem Adr function that is the MMU for the LC-3 simulator. In essence, we now have a single LC-3 simulator with a single unified global memory array yet we provide multi-tasking in the simulator for up to 32 LC-3 programs running in their own private address space using virtual memory.

We are implementing a two level page table for the virtual memory in this programming task. A two level table relies on referring to two page tables both indexed by separate page numbers to complete an address translation from a virtual to a physical address. The first table is referred to as the root page table or RPT for short. The root page table is a fixed static table that always resides in memory. There is exactly one RPT per LC-3 task. Always.

The memory layout for the LC=3 simulator including the system (kernel) area that is always resident and non-paged (i.e., no virtual address translation).

The two figures try to illustrate the situation. The lower figure below demonstrates the use of the two level page table. The RPT resident in non-virtual memory is first referenced to get the address of the second level user page table or (UPT) for short. The right figure in purple and green illustrates the memory layout more precisely. Anything below the address 0x3000 is considered non-virtual. The address space is not paged. The memory in the region 0x2400 through 0x3000 is reserved for the RPTs for up to thirty-two LC-3 tasks. These tables are again always present in memory and are not paged. Accessing any RPT does not require any type of address translation.

The addresses that reside above 0x3000 require an address translation. The memory area is in the virtual address space of the program. This virtual address space means that a UPT belonging to any given task is accessed using a virtual address. You must use the RPT in the system memory to keep track of the correct physical address for the UPT location. Once you have the physical address of the UPT you can complete the address translation by finding the data frame and combining it with the page offset to arrive at your final absolute physical address.

A Two-level page table for virtual memory management.

x7000 123F x7000 0042

x7001 6534 x7001 6534

x7002 300F x7002 300F

x7003 4005 after the program is run, memory x7003 4005

x7004 3F19

Zarrin [17]3 years ago
5 0

Answer:

Explanation:

LC-3 Processor:

The LC-3 (Little Computer 3) is an ISA definition for a 16-bit computer. Its architecture includes physical memory mapped I/O via a keyboard and display; TRAPs to the operating system for handling service calls; conditional branches on N, Z, and P condition codes; a subroutine call/return mechanism; a minimal set of operation instructions (ADD, AND, and NOT); and various addressing modes for loads and stores (direct, indirect, Base+offset, PC-relative, and an immediate mode for loading effective addresses). Programs written in LC-3 assembler execute out of a 65536 word memory space. All references to memory, from loading instructions to loading and storing register values, pass through thegetMemAdr() function. The hardware/software function of Project 5 is to translate virtual addresses to physical addresses in a restricted memory space. The following is the default, pass-through, MMU code for all memory references by the LC-3 simulator.

Simple OS, Tasks, and the LC-3 Simulator

We introduce into our simple-os a new task that is an lc3Task. An lc3Task is a running LC-3 simulator that executes an LC-3 program loaded into the LC-3 memory. The memory for the LC-3 simulator, however, is a single global array. This single global array for memory means that alllc3Tasks created by the shell use the same memory for their programs. As all LC-3 programs start at address 0x3000 in LC-3, each task overwrites another tasks LC-3 program when the scheduler swaps task. The LC-3 simulator (lc3Task) invokes the SWAP command every several LC-3 instruction cycles. This swap invocation means the scheduler is going to be swapping LC-3 tasks before the tasks actually complete execution so over writing another LC-3 task's memory in the LC-3 simulator is not a good thing.

You are going to implement virtual memory for the LC-3 simulator so up to 32 LC-3 tasks can be active in the LC-3 simulator memory without corrupting each others data. To implement the virtual memory, we have routed all accesses to LC-3 memory through a getMemAdr function that is the MMU for the LC-3 simulator. In essence, we now have a single LC-3 simulator with a single unified global memory array yet we provide multi-tasking in the simulator for up to 32 LC-3 programs running in their own private address space using virtual memory.

We are implementing a two level page table for the virtual memory in this programming task. A two level table relies on referring to two page tables both indexed by separate page numbers to complete an address translation from a virtual to a physical address. The first table is referred to as the root page table or RPT for short. The root page table is a fixed static table that always resides in memory. There is exactly one RPT per LC-3 task. Always.

The memory layout for the LC=3 simulator including the system (kernel) area that is always resident and non-paged (i.e., no virtual address translation).

The two figures try to illustrate the situation. The lower figure below demonstrates the use of the two level page table. The RPT resident in non-virtual memory is first referenced to get the address of the second level user page table or (UPT) for short. The right figure in purple and green illustrates the memory layout more precisely. Anything below the address 0x3000 is considered non-virtual. The address space is not paged. The memory in the region 0x2400 through 0x3000 is reserved for the RPTs for up to thirty-two LC-3 tasks. These tables are again always present in memory and are not paged. Accessing any RPT does not require any type of address translation.

The addresses that reside above 0x3000 require an address translation. The memory area is in the virtual address space of the program. This virtual address space means that a UPT belonging to any given task is accessed using a virtual address. You must use the RPT in the system memory to keep track of the correct physical address for the UPT location. Once you have the physical address of the UPT you can complete the address translation by finding the data frame and combining it with the page offset to arrive at your final absolute physical address.

This model of having a portion of memory that is not part per se of the virtual address space is not all that unusual. In fact, the lower region of the address space can by thought of as system space where kernel data structures reside. As such, it can be accessed directly without the need for the address translation. Remember, however, that anything above 0x3000 must pass through address translation.

A Two-level page table for virtual memory management.

x7000 123F                                                                            x7000 0042

x7001 6534                                                                            x7001 6534

x7002 300F                                                                            x7002 300F

x7003 4005                after the program is run, memory x7003 4005

x7004 3F19                

You might be interested in
What is the maximum amount of memory that vmachine1 can use in its current configuration with startup ram set to 1024 megabytes?
lidiya [134]

The answer is 1024MB.

I am really not in a position to answer this question fully since the lab is not provided but according to the research conducted online, the answer is 1024MB. According to the book, based on the physical memory installed on the PC, the current system shows 1.06GB which is equivalent to 1060MB. Thus, it is able to use all 1024MB.






7 0
3 years ago
Assuming that the actual process ids of the parent and child process are 2600 and 2650 respectively, what will be printed out at
VashaNatasha [74]

Answer:

Output explanation to the given code can be defined as follows:

Explanation:

In A the output is 0 , It will return fork value of the child process that is 0. so, 0 is printed during child process.  

In B the output is 2650 , in which the getpid() method returns the child process id  value that is 2650.  

In C the output is 140, As it is declared in key, all process have their own "value" copies. 20 are inserted during childhood, so 140 are written.  

In D the output is 2650, its fork() method returns the child ID to the parent process. so the value 2650 is printed.  

In E the output is 2600, Its getpid() method will returns parent process id  that is equal to 2600.  

In F the output is 120 Since the value is declared in primary, all process so their own "value" copies. 120 will be printed during process.

4 0
3 years ago
Instructions:Select the correct answer.
lana [24]
You should follow A. Alternate between single and horizontal line breaks, and B. update your resume on job sites once a year, so that you can tell the people who look at the resume what skills you have updated on.
6 0
3 years ago
What is the most important trait of the first pilot project in the AI Transformation Playbook?
MissTica

Answer:

Succeed and show traction within 6-10 months.

Explanation:

Ai (Artificial Inteliigence), also known as machine intelligence, is a branch of computer science that is specialized in making smart machines that are capable of doing human tasks

AI Transformation Playbook is a guide to use AI in enterprises successfully, written by Co-founder of Google Brain, Andrew Ng. In his guide, he unveiled the steps that can be followed to successfully installing AI in enterprises, companies, etc.

The most important trait of the first pilot projects is that it succeeds and begins to show traction within 6-10 months.

In his guide, he summarised five steps to install AI in enterprises. The first step is to 'Execute pilot projects to gain  momentum.'

The most important trait of beginning with AI projects is that it succeeds first before being most valuable projects. The success is important as it will help to achieve familiarity and will help other people of the company to invest in this project more.

This success begins to show tractions within 6-12 months of its success.

8 0
3 years ago
Where is the spelling checker found in Excel?
laiz [17]
Simply press F7 or go to the tab 'Review' and --> left click 'spelling'. Located in the top panel.

This will enable the spell checking phase. 
7 0
3 years ago
Read 2 more answers
Other questions:
  • Nick is a food blogger. He first writes his draft on an electronic document, checks and corrects mistakes, and pastes the conten
    9·2 answers
  • Your Economics teacher has asked you to create a chart showing how supply and demand affects the price of gasoline. Which applic
    13·2 answers
  • Complete the following:_____
    9·1 answer
  • What type of machine is a CD player? A. simple machine B. compound machine
    8·2 answers
  • Write a Console Java program that asks the user to enter one sentence on the keyboard. Output on the console:
    6·1 answer
  • What are the pros and cons of editorial anonymity in Wikipedia
    10·2 answers
  • What are the two most popular applications of theInternet?
    7·1 answer
  • What emphasizes extensive user involvement in the rapid and evolutionary construction of working prototypes of a system to accel
    15·1 answer
  • What are the five Ws?<br> (I don’t even know what this means)
    5·2 answers
  • How do you mark answers brainliest?<br> it looks like they changed it and now idk how to
    12·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!