
EBK SOFTWARE ENGINEERING
10th Edition
ISBN: 9780133943238
Author: SOMMERVILLE
Publisher: PEARSON CO
expand_more
expand_more
format_list_bulleted
Expert Solution & Answer
Chapter 21, Problem 21.10E
Explanation of Solution
General purpose operating systems as realtime system platforms:
General purpose operating systems such as linux or windows are not suitable as realtime system platforms because of the following reasons:
- General purpose operating systems such as linux or windows are system software that manages computer hardware and software whereas real-time system platforms are those systems in which the correctness of the system depends not only on the logical result of computation, but also on the time at which the results are produced.
- General purpose operating systems are used for system or applications that are not time critical whereas real-time system platforms are used for time critical systems...
Expert Solution & Answer

Want to see the full answer?
Check out a sample textbook solution
Students have asked these similar questions
Answer two JAVA OOP questions.
Answer two JAVA OOP questions.
Answer two JAVA OOP questions.
Knowledge Booster
Similar questions
- describe 3 practices you would not recommend when designing data visualizations. Explain your responsearrow_forwardPlease answers two questions of JAVA OOP.arrow_forward4. Suppose we have a perfect binary tree with height h 0 representing a heap, meaning it = has n 2+1 1 keys indexed from 1 to 2+1 1. When we run convertomaxheap we run maxheapify in reverse order on every key with children. Let's examine the worst-case - In the worst-case every single key gets swapped all the way to the leaf level. (a) For each level in the tree there are a certain number of nodes and each of those nodes [10 pts] requires a certain number of swaps. Fill in the appropriate values/expressions in the table: Level Number of Keys Number of Swaps per Key 0 2 .. (b) Write down a sum for the total number of swaps required. This should involve h, not n. [10 pts] Totalarrow_forward
- The next problem concerns the following C code: /copy input string x to buf */ void foo (char *x) { char buf [8]; strcpy((char *) buf, x); } void callfoo() { } foo("ZYXWVUTSRQPONMLKJIHGFEDCBA"); Here is the corresponding machine code on a Linux/x86 machine: 0000000000400530 : 400530: 48 83 ec 18 sub $0x18,%rsp 400534: 48 89 fe mov %rdi, %rsi 400537: 48 89 e7 mov %rsp,%rdi 40053a: e8 di fe ff ff callq 400410 40053f: 48 83 c4 18 add $0x18,%rsp 400543: c3 retq 400544: 0000000000400544 : 48 83 ec 08 sub $0x8,%rsp 400548: bf 00 06 40 00 mov $0x400600,%edi 40054d: e8 de ff ff ff callq 400530 400552: 48 83 c4 08 add $0x8,%rsp 400556: c3 This problem tests your understanding of the program stack. Here are some notes to help you work the problem: ⚫ strcpy(char *dst, char *src) copies the string at address src (including the terminating '\0' character) to address dst. It does not check the size of the destination buffer. • You will need to know the hex values of the following characters:arrow_forward1234 3. Which line prevents compiler optimization? Circle one: 1234 Suggested solution: Store strlen(str) in a variable before the if statement. ⚫ Remove the if statement. Replace index 0 && index < strlen(str)) { 5 } } = str [index] = val;arrow_forwardCharacter Hex value | Character Hex value Character Hex value 'A' 0x41 'J' Ox4a 'S' 0x53 'B' 0x42 'K' 0x4b "T" 0x54 0x43 'L' Ox4c 'U' 0x55 0x44 'M' 0x4d 'V' 0x56 0x45 'N' Ox4e 'W' 0x57 0x46 '0' Ox4f 'X' 0x58 0x47 'P' 0x50 'Y' 0x59 0x48 'Q' 0x51 'Z' Ox5a 'T' 0x49 'R' 0x52 '\0' 0x00 Now consider what happens on a Linux/x86 machine when callfoo calls foo with the input string "ZYXWVUTSRQPONMLKJIHGFEDCBA". A. On the left draw the state of the stack just before the execution of the instruction at address Ox40053a; make sure to show the frames for callfoo and foo and the exact return address, in Hex at the bottom of the callfoo frame. Then, on the right, draw the state of the stack just after the instruction got executed; make sure to show where the string "ZYXWVUTSRQPONMLKJIHGFEDCBA" is placed and what part, if any, of the above return address has been overwritten. B. Immediately after the ret instruction at address 0x400543 executes, what is the value of the program counter register %rip?…arrow_forward
- 1 typedef struct node* { 2 struct node* next; 3 char* key; 4 char* val; 5} node_t; 6 7 char* find_node (node_t* node, char* key_to_find) { while(strcmp (node->key, key_to_find ) != 0 ) { node = node->next; 8 9 10 } 11 return node->val; 12 }arrow_forwardMatch each of the assembler routines on the left with the equivalent C function on the right. Write the name of the label (e.g., foo) to the right of the corresponding function. Note: shrq is the logical right shift instruction, and sarq is the arithmetic right shift instruction. foo1: leaq 0(,%rdi, 8), %rax long choice1 (long x) { ret return x - 8 >8; foo3: } movq sarq %rdi, %rax $8, %rax long choice4 (long x) ret { return x*256; } foo4: long choice5 (long x) leaq -8 (%rdi), %rax { ret return x-8; } long choice6 (long x) foo5: { leaq -8 (%rdi), %rax return x+8; shrq $63, %rax } retarrow_forwardGiven the variables and code in the text below, identify where in memory they will live once the code is compiled. 1 char big_array [1L<<24]; /* 16 MB */ 2 GB * :/ 2 char huge_array [1L<<31]; /* 3 4 int global = 0; 5 6 int useless () { return 0; } 7 8 int main() 9 { 10 void *p1, p2, *p3, *p4; int local = 0; malloc (1L << 28); /* 256 MB *, 11 12 p1 13 p2 = malloc (1L << 8); /* 256 B * 14 p3 15 p4 = malloc (1L << 32); malloc (1L << 8); /* 4 GB * */ /* 256 B */ 16 } Note: *pN is the thing at which pN points. 1. big_array 2. huge_array 3. global 4. useless 5. void* p1 6. *p1 7. void* p2 8. *p2 9. void* p3 10. *p3 11. void* p4 12. *p4arrow_forward
- The next problem concerns the following C code: /copy input string x to buf */ void foo (char *x) { char buf [8]; strcpy((char *) buf, x); } void callfoo() { } foo("ZYXWVUTSRQPONMLKJIHGFEDCBA"); Here is the corresponding machine code on a Linux/x86 machine: 0000000000400530 : 400530: 48 83 ec 18 sub $0x18,%rsp 400534: 48 89 fe mov %rdi, %rsi 400537: 48 89 e7 mov %rsp,%rdi 40053a: e8 di fe ff ff callq 400410 40053f: 48 83 c4 18 add $0x18,%rsp 400543: c3 retq 400544: 0000000000400544 : 48 83 ec 08 sub $0x8,%rsp 400548: bf 00 06 40 00 mov $0x400600,%edi 40054d: e8 de ff ff ff callq 400530 400552: 48 83 c4 08 add $0x8,%rsp 400556: c3 This problem tests your understanding of the program stack. Here are some notes to help you work the problem: ⚫ strcpy(char *dst, char *src) copies the string at address src (including the terminating '\0' character) to address dst. It does not check the size of the destination buffer. • You will need to know the hex values of the following characters:arrow_forwardConsider the following assembly code for a C for loop: movl $0, %eax jmp .L2 .L3: addq $1, %rdi addq %rsi, %rax subq $1, %rsi .L2: cmpq %rsi, %rdi jl .L3 addq ret %rdi, %rax Based on the assembly code above, fill in the blanks below in its corresponding C source code. Recall that registers %rdi and %rsi contain the first and second, respectively, argument of a function. (Note: you may only use the symbolic variables x, y, and result in your expressions below do not use register names.) long loop (long x, long y) { long result; } for ( } return result; __; y--) {arrow_forwardIn each of the following C code snippets, there are issues that can prevent the compiler from applying certain optimizations. For each snippet: Circle the line number that contains compiler optimization blocker. ⚫ Select the best modification to improve optimization. 1. Which line prevents compiler optimization? Circle one: 2 3 4 5 6 Suggested solution: ⚫ Remove printf or move it outside the loop. Remove the loop. • Replace arr[i] with a constant value. 1 int sum (int *arr, int n) { 2 int s = 0; 3 for (int i = 0; i < n; i++) { 4 5 6 } 7 8 } s = arr[i]; printf("%d\n", s); return s; 234206 2. Which line prevents compiler optimization? Circle one: 2 3 4 5 6 Suggested solution: Move or eliminate do_extra_work() if it's not necessary inside the loop. Remove the loop (but what about scaling?). ⚫ Replace arr[i] *= factor; with arr[i] = 0; (why would that help?). 1 void scale (int *arr, int n, int factor) { 5 6 } for (int i = 0; i < n; i++) { rr[i] = factor; do_extra_work ();arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Principles of Information Systems (MindTap Course...Computer ScienceISBN:9781285867168Author:Ralph Stair, George ReynoldsPublisher:Cengage LearningPrinciples of Information Systems (MindTap Course...Computer ScienceISBN:9781305971776Author:Ralph Stair, George ReynoldsPublisher:Cengage LearningFundamentals of Information SystemsComputer ScienceISBN:9781337097536Author:Ralph Stair, George ReynoldsPublisher:Cengage Learning
- Systems ArchitectureComputer ScienceISBN:9781305080195Author:Stephen D. BurdPublisher:Cengage LearningFundamentals of Information SystemsComputer ScienceISBN:9781305082168Author:Ralph Stair, George ReynoldsPublisher:Cengage LearningEnhanced Discovering Computers 2017 (Shelly Cashm...Computer ScienceISBN:9781305657458Author:Misty E. Vermaat, Susan L. Sebok, Steven M. Freund, Mark Frydenberg, Jennifer T. CampbellPublisher:Cengage Learning

Principles of Information Systems (MindTap Course...
Computer Science
ISBN:9781285867168
Author:Ralph Stair, George Reynolds
Publisher:Cengage Learning

Principles of Information Systems (MindTap Course...
Computer Science
ISBN:9781305971776
Author:Ralph Stair, George Reynolds
Publisher:Cengage Learning

Fundamentals of Information Systems
Computer Science
ISBN:9781337097536
Author:Ralph Stair, George Reynolds
Publisher:Cengage Learning

Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning

Fundamentals of Information Systems
Computer Science
ISBN:9781305082168
Author:Ralph Stair, George Reynolds
Publisher:Cengage Learning

Enhanced Discovering Computers 2017 (Shelly Cashm...
Computer Science
ISBN:9781305657458
Author:Misty E. Vermaat, Susan L. Sebok, Steven M. Freund, Mark Frydenberg, Jennifer T. Campbell
Publisher:Cengage Learning