Operating System: Functional and Market Requirements

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What primary factor defines 'functional requirements' in the context of operating systems?

  • Ensuring compatibility with older software versions.
  • The operating system's ability to be easily ported to different hardware.
  • The features and functions an OS supports for the user. (correct)
  • Economic efficiency of the development and maintenance processes.

Which of the following is most closely associated with 'market requirements' for an operating system?

  • User interface design and user experience.
  • The cost-effectiveness of its development and support. (correct)
  • The performance of the OS in terms of speed and efficiency.
  • Security measures implemented to protect user data.

Which factor most directly enables an operating system's portability?

  • Direct access to hardware resources without abstraction.
  • A large amount of machine-dependent code.
  • Hardware-specific code written in assembly language.
  • A modular design that separates hardware-dependent code. (correct)

What is the significance of writing a large portion of an OS in a high-level language for portability?

<p>It allows for easier translation to different hardware platforms. (D)</p> Signup and view all the answers

Which of the following exemplifies OS extensibility?

<p>Adding support for new hardware without major code modifications. (D)</p> Signup and view all the answers

What architectural approach primarily facilitates the extensibility of an operating system?

<p>Microkernel architecture. (A)</p> Signup and view all the answers

What does 'program compatibility' in operating systems primarily ensure?

<p>The OS can run programs developed for other OSs. (B)</p> Signup and view all the answers

What is the key benefit of 'backward compatibility' in an operating system?

<p>It allows newer OS versions to run software designed for older versions. (A)</p> Signup and view all the answers

What is required to achieve source code compatibility across different operating systems?

<p>Standardized programming languages and compilers. (B)</p> Signup and view all the answers

In the context of operating systems, what does binary compatibility refer to?

<p>The ability to transfer executable code between systems. (A)</p> Signup and view all the answers

What is typically necessary when processor architectures are incompatible and binary compatibility is desired?

<p>Emulation of the execution environment. (C)</p> Signup and view all the answers

What is the role of an API in achieving program compatibility?

<p>It provides a consistent interface for accessing system resources. (A)</p> Signup and view all the answers

Which of the following best describes the concept of virtualization?

<p>Creating virtual (software-defined) resources or environments. (C)</p> Signup and view all the answers

What is the primary purpose of virtualization in computing?

<p>To allow multiple operating systems to run on a single physical machine. (A)</p> Signup and view all the answers

What is a key characteristic of virtualization regarding the isolation of computing processes?

<p>Virtualization provides logical isolation of computing processes on a shared resource. (C)</p> Signup and view all the answers

How does emulation differ from virtualization?

<p>Emulation replicates the behavior of one system on another, while virtualization abstracts resources. (B)</p> Signup and view all the answers

What is the primary role of a hypervisor in a virtualized environment?

<p>To manage and allocate resources to virtual machines. (C)</p> Signup and view all the answers

What is a key challenge in virtualization related to guest OS commands?

<p>Ensuring that guest OS commands do not compromise the hypervisor or other VMs. (B)</p> Signup and view all the answers

What is the approach of 'paravirtualization'?

<p>The guest OS is modified to work efficiently with the hypervisor. (B)</p> Signup and view all the answers

A certain CPU instruction behaves differently based on whether it is executed in user mode or kernel mode. What is the term that best describes this type of instruction?

<p>Sensitive Instruction (A)</p> Signup and view all the answers

Which of the following is an example of virtualization at the operating system level?

<p>Using Docker containers. (A)</p> Signup and view all the answers

What defines a Type 1 hypervisor?

<p>It installs directly onto the hardware. (D)</p> Signup and view all the answers

Which of the following is a characteristic of a Type 2 hypervisor?

<p>Reliance on a host operating system. (B)</p> Signup and view all the answers

What is a significant advantage of using a hypervisor for server management?

<p>Increased efficiency of server resource utilization. (B)</p> Signup and view all the answers

From a market requirements perspective, what is 'portability' regarding OS design?

<p>The ability of an OS to be easily transferred to different hardware platforms. (D)</p> Signup and view all the answers

What is the primary characteristic of a monolithic kernel design, often contrasting with microkernel architecture?

<p>Most system services run in the kernel space. (D)</p> Signup and view all the answers

What programming practice aids in achieving hardware independence in operating systems?

<p>Abstraction of hardware interactions through device drivers. (C)</p> Signup and view all the answers

What is the role of 'interrupts' as a hardware support mechanism in operating systems?

<p>To handle hardware events asynchronously. (B)</p> Signup and view all the answers

Wine on Linux best illustrates which type of compatibility?

<p>API compatibility (A)</p> Signup and view all the answers

Regarding the design of operating systems for mobile devices, what represents a crucial design consideration contrasting desktop OS design?

<p>Limited resources usage. (C)</p> Signup and view all the answers

With regard to application development for mobile operating systems, what design goal is typically paramount?

<p>Sandboxing applications (B)</p> Signup and view all the answers

In Android OS, what describes one of the roles of the modified Linux kernel?

<p>Hardware abstraction (A)</p> Signup and view all the answers

Which of the following best articulates one purpose of the Android Runtime (ART)?

<p>Executes Java code. (D)</p> Signup and view all the answers

Flashcards

Functional OS requirements

Requirements for functions supported by the OS, focusing on user needs and expectations.

Market OS requirements

Requirements related to the cost-effectiveness of OS development and maintenance, focusing on developer considerations.

OS Portability

The system's capacity to be used across different hardware configurations without modification.

Software Compatibility

Ability of an OS to work with software made for different systems or older versions.

Signup and view all the flashcards

OS Extensibility

OS design that allows adding new functions without changing the core system.

Signup and view all the flashcards

Virtualization

Mimicking hardware to run multiple OSs on one machine.

Signup and view all the flashcards

Hypervisor

Software or hardware enabling multiple virtual machines on one host.

Signup and view all the flashcards

API (Application Programming Interface)

A set of functions and procedures allowing the creation of applications that access the features or data of an operating system, service, or other interface.

Signup and view all the flashcards

Program Compatibility

Ability to execute applications developed for other OS environments.

Signup and view all the flashcards

Backward Compatibility

Ability to run programs developed for older versions of the OS.

Signup and view all the flashcards

Source Code Compatibility

Ability to transfer and compile source code across different operating systems.

Signup and view all the flashcards

Binary Compatibility

Ability to transfer executable code across different systems.

Signup and view all the flashcards

Emulation

Duplicating one system’s functions on a different system so the emulated behavior closely matches the original.

Signup and view all the flashcards

Virtualization

Abstraction of computing resources providing logical isolation.

Signup and view all the flashcards

Sensitive Instructions

Commands with different actions based on the processor's mode (user or kernel).

Signup and view all the flashcards

Privileged Instructions

Commands causing a system interrupt when executed in user mode.

Signup and view all the flashcards

Dynamic Translation

Hypervisor rewrites code, replacing unsafe commands with safe sequences.

Signup and view all the flashcards

Paravirtualization

Hypervisor provides an API for the guest OS to interact with it.

Signup and view all the flashcards

Type 2 Hypervisor

OS runs as an application on another OS.

Signup and view all the flashcards

Type 1 Hypervisor

OS runs directly on hardware.

Signup and view all the flashcards

Hypervisor

Computer program or hardware that allows running multiple operating systems simultaneously on single machine.

Signup and view all the flashcards

Study Notes

Functional and Market Requirements for OS

  • Functional requirements relate to the functions that the OS supports.
  • Functional requirements reflect the user's needs.
  • Market requirements relate to the economic efficiency of OS development and maintenance.
  • Market requirements reflect the developer's needs.

Functional Requirements for OS

  • Efficient resource managment
  • User-friendly interface.
  • Application interface that is user-friendly and effective.
  • Support for multitasking and multithreading.
  • Virtual meory support
  • Multi-window graphic interface
  • Support for network communication.
  • Reliability and fault tolerance.
  • Data security.

Market Requirements for OS

  • Portability describes the ability to transfer and use across different hardware and software platforms.
  • Software compatibility includes backward compatibility.
  • Expandability

Hardware Independence and OS Portability

  • OS hardware support includes an interrupt system.
  • OS hardware support includes privileged mode support.
  • OS hardware support includes address translation mechanisms.
  • OS hardware support includes process switching tools.
  • OS hardware support includes a system timer.
  • OS hardware support includes memory protection.
  • OS hardware support includes I/O device protection.
  • Portability is ability to be transferred.
  • Most code should be written in a high-level language with translators for different hardware platforms.
  • Hardware specific code should be separated from the rest of the system.
  • Minimize the amount of machine-dependent code.

OS Expandability

  • OSes can last longer than hardware.

  • Expandability involves adding new functionality while saving the main code.

  • Expandability includes support for new hardware (CD-ROM, flash).

  • Connecting to new types of networks

  • New user interface technoogies(GUI).

  • It includes support for adding new hardware architectures (multiprocessor).

  • OS expandability is achieved through:

    • Modular OS structure.
    • Using objects
    • Client-server technology with microkernel architecture.
    • Loadable driver modules.

Software Compatibility

  • Software Compatibility is the ability to run programs designed for another OS environment in the current OS environment.
  • Backward compatibility makes running the software programs, designed for previous versions of the OS, possible in the current OS environment.
  • Source code compatibility allows for the migration of source code.
  • Requiring a compiler (standardizing programming languages, developing standard compilers)
  • Requiring API compatibility (standardizing interfaces).

Binary Compatibility

  • Binary compatibility allows for the transfer of executable code.
  • If processor architectures (command set, addressing system, address range) are compatible, only API and internal file structure compatibility are required.
  • Emulation of the execution environment is necessary if processor architectures are incompatible.
  • Library translation can accelerate emulation.

Realization of Equitable APIs

  • The graphic shows a diagram of how OS1, OS2 and OS3 all connect to API OC1 API OC2 & API OC3, and they all connect to resource managers and basic mechanisms.

Implementation of Application Programming Environments

  • The graphic shows a diagram of how an applied program for OC 1connects to the application program for OC2 and OC3, and these connect to the API OC 1, which further connects to resource managers and basic mechanisms.

Example: Wine for Linux

  • Wine is software that allows Linux users to run 16, 32, and 64-bit Windows programs.
  • Wine implements a Windows API and intercepts program calls to system libraries before execution.
  • Wine enables downloading Windows DLLs.
  • Wine is also ported to Windows to run outdated incompatible programs.
  • Programs under Wine run nearly as fast as native environments.
  • Wine is not an emulator.

Example: Windows NT

  • The executable systems POSIX and OS/2 in Windows NT are not implementations of the corresponding OS kernels.
  • These systems are implementations of user-mode subsystems that run directly on the Windows NT kernel.
  • They are implemented as secure servers.

Virtualization and emulation

  • Virtualization creates virtual objects or environments by creating a set of computing resources.
  • Virtualization provides logical isolation of computing processes that run on the same physical resource.
  • Virtualization includes running multiple OSes, and providing resources is handled by the host OS or hypervisor.
  • Emulation duplicates functions from one computing system (guest) to another.
  • Emulation behavior corresponds to the original system behavior.
  • Emulation is performed through combinations of software and hardware.
  • An example of emulation is software emulation of hardware.

Features of Virtualizatoin

  • Virtualization combines computing resources and transfers them from a physical machine to a virtual state.
  • Virtual server resources can be used for several virtual machines.
  • Technologies of virtualization involves creating simulated computing environments on a physical server.
  • Multiple OSes can run without requiring seperate physical hardware.

Virtualization Issue

  • A virtual machine (guest) must be prevented from affecting the host hypervisor environment.
  • An example of a prevented function is the prohibition of interrupts.
  • The most secure option involves emulating the hardware in software so that every guest command is run in the interpreter which is slow and infective.
  • Effective Implementation entails executing guest commands on the processor but intercepting and implementing insecure commands via software.
  • With certain hardware configurations, you can run the guest OS in user mode.
  • Kernel mode instructions (“insecure” commands) run with emulation in software,.
  • Not all hardware designs meet these requirements (e.g., Intel x86).

Insecure commands

  • Sensitive instructions are processor commands that behave differently based on the mode of execution (user or kernel).
  • Operations like I/O, memory management, and register writes are sensitive.
  • Privileged instructions are processor commands that cause a system interrupt if executed in user mode.
  • Virtualization is only possible when sensitive instructions are a subset of privileged instructions.
  • Intel 386's POPF (replacing the flag register word from the stack), does set some flags, and does not cause interruption in user mode.
  • Hardware support for virtualization on Intel 386 arrived in 2005.
  • Intel offers Virtualization Technology or VT
  • AMD offers Secure Virtual Machine or SVM
  • Examples:
  • Intel — Virtualization Technology (VT)
  • AMD — Secure Virtual Machine (SVM).

Types of OS Virtualization

  • Software virtualization performs dynamic (binary) translation, and the hypervisor rewrites the code by replacing unsafe commands with other command sequences.
  • Used by VMware until the arrival of the VT architecture.
  • Para-virtualization provides an API so the guest OS interacts with the hypervisor.
  • Hardware virtualization utilizes hardware support (vSphere, Xen, Hyper-V).
  • OS-level virtualization isolates multiple user spaces within one operating system.
  • Docker, Solaris Containers Zones, and FreeBSD Jail are some examples
  • Process-level virtualization is exemplified by WINE.

Hypervisor

  • A hypervisor, either in the form of application or processor hardware, supports the concurrent and parallel operation of many virtual machines.
  • Each virtual machine runs its OS on a physical host computer.
  • The technology is key to the operation as it optimizes and delivers flexibility in service deployments.

Types of Hypervisors

Autonomous Hypervisor (Type 1, X)

  • Type 1 has built-in device drivers, driver models, and a scheduler, and runs in a trim kernel environment.
  • VMware ESX & XenServer are Type 1.

Based on Basic OS (Type 2, V)

  • Type 2 runs having the base OS kernel (ring 0).

  • Guest code runs on the physical processor except sensitive instructions, which are handled by the base OS.

  • VMware Workstation, VirtualBox, and QEMU are Type 2 hyervisor examples.

  • The graphic shows a diagram that shows Processes of Guest OS 1, Guest OS 2 with Guest OS 1, Guest OS 2, and shared area being operated by Hypervisor Type 1 over the hardware.

  • The graphic shows processes of Guest OS, and operating by the guest OS and Hypervisor Type 2, over the base operating system and hardware.

  • Type 1 hypervisors are a layer of software that is installed directly on the physical server and its basic hardware.

  • It has no underlying software nor operating system.

  • Type 2 hypervisors run within an OS.

  • Unlike what directly on the hardware Type 1 hypervisors, Type 2 operate within an OS.

Benefits of Using a Hypervisor

  • Speed. Hypervisors allow virtual machines to be creates instantly.
  • Effectiveness allows virtualzation of virtual machens.
  • Flexibility allows OS and programs to work on different hardware types.
  • Portability allows multiple OSes to reside on a host machine.

Mobile OS: Specifications

  • Mobile devices have limited computing power, memory, data storage, and battery capacity.
  • Mobile devices have variety based on screen sizes resolutions, availability of keyboards , wireless interfaces, integrated peripherals, processor architectures (ARM, x86).
  • Mobile OSes should be designed for non-professional consumption needs:
    • Ease of use, easy to maintain but secure.
    • Protection from malicious apps is important.
  • The market demands good first impressions, rapid development, and does not forgive mistakes.

Principles of Mobile OS

  • The OS’s core mus be lightweight by minimizing resources.
  • The OS should work within a fixed memory capacity and not move code and data to external storage.
  • APIs and mechanisms for “sleep” mode are necessary to save battery power.
  • The programs should operate independant of the OS and hardware.
  • Sandboxing application code is needed to reduce exposure to application threats.
  • The applications should use existing standard components where possible.
  • Third party developers should be enabled with creation of programs so they can have access to the application
  • The mobile OS needs that they create a mobile software market (app store) to have developers so their own software can operate..

Principles of Implementation in Android OS

  • Android is coded as a modified kernel for Linux.
  • Linux scalable, widely used technology with broad third-party hardware support and security resources.
  • Java is used for many enterprise applications.
  • Java programs operate on a virtual computer and can be independant from the underlying hardware.
  • To reduce requirements of the Java VM, parts of the system have been rewritten.
  • Google's Android OS is a "Sun/Oracle Java".
  • Android developers wrote their own streamlined Java VM and execution environment is used.
  • Dalvik, which was available until Android 4.4, has optimized architecture.
  • Android RunTime or ART is a new optimized architecture.
  • Optimized VM architecture includes memory sharing, quick start and removes Java VM requirements which compromises security.
  • Android architecture separates the kernel from the middle-ware to support a device ecosystem.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Understanding Android Game Market Analysis
5 questions
Operating Systems Chapter 6 Flashcards
14 questions
RMO Tradeshow System Quiz
36 questions

RMO Tradeshow System Quiz

DextrousMendelevium avatar
DextrousMendelevium
Use Quizgecko on...
Browser
Browser