SlideShare a Scribd company logo
Abhishek Srivastava  (07/MCA/12) Presented By :  Term Paper Report on
INTRODUCTION  In case of embedded systems, the rise in processing speeds of embedded processors and microcontroller evolution has lead to the possibility of running computation and data intensive applications on small embedded devices that earlier only ran on desktop-class systems. From a memory stand point, there is a similar need for running larger and more data intensive applications on embedded devices.However, support for large memory address spaces, specifically, virtual memory, for MMU-less embedded systems is always lacking. But by implementing virtual memory scheme for MMU-less systems as a software , based on an application level virtual memory library and a virtual memory aware assembler. This type of implementation is open to programmer and always available for changes.
Many software developers in recent years have turned to Linux as their operating system of choice. Until the advent of uClinux developers of smaller embedded systems, usually incorporating microprocessors with no memory management unit could not take advantage of Linux in their designs. UClinux is a variant of mainstream Linux that runs on 'MMU-less' processor architectures. Component costs are of primary concern in embedded systems, which are typically required to be small and inexpensive. Microprocessors with on-chip memory management unit (MMU) hardware tend to be complex and expensive, and as such are not typically selected for small, simple embedded systems which do not require them. With many advantages of MMU less Systems (like : speed and cost efective ness) use of them is increasing day by day and a proper , stable and real time Operating system is required , and in this paper i am going to study this type of operating systems and schemes of implementing Virtual memory using software.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Embedded Linux operating system ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Memory Management  and Memory Management Unit Memory management  is the act of managing computer memory. In its simpler forms, this involves providing ways to allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. The management of main memory is critical to the computer system. A  memory management unit  (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware component responsible for handling accesses to memory requested by the central processing unit (CPU). Its functions include translation of virtual addresses to physical addresses (i.e.,virtual memory management ) , memory protection, cache control, bus arbitration  etc.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why create an MMU-less Linux?   Linux has become popular on embedded devices—especially consumer gadgets, telecom routers and switches, Internet appliances and automotive applications. Because of the modular nature of Linux, it is easy to slim down the operating environment by removing utility programs, tools, and other system services that are not needed in an embedded environment. Advantages of Linux is that it is a  fully functional OS, with support for network that is becoming a very important requirement in embedded systems.  We  can add or unload modules from the kernel at runtime, this makes embedded Linux very flexible.  It is more encouraging that the Linux  code is widely available ,  portable  to any processor,  scalable  and  stable .
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Diagram Below shows the data flow towards target system ,  The   application   source code.   Important is Application’s view of address space is        as large as the secondary storage i.e., the virtual address space.  The virtual memory library.  This library consists of an implementation of virtual to physical address translation (vm.c). It also includes a header file (vm.h) with configurable parameters (page size, ram size  etc.)
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
Virtual Memory Approach  Algorithm for Virtual to Physical memory Address Translation   1:   function  virtual-to-physical 2:   Input  va  :  virtual address,  wr  : 1 =>  write ;0 =>  read 3:  Output  pa  :  physical address 4:  Decompose  va  into ( tag ;  page ;  off set )  5:  pte    PTE [ page ] 6:  if  pte . tag  =  va . tag and pte . valid  = 1  then 7:  if  wr  = 1  then 8:  pte : dirty     1 9:  end if 10:  return  pa  =  page *   sizeof ( page )  +  offset 11:  end if 12:  if  pte . valid  = 1  and  pte . dirty  = 1  then 13:  write  RAM [ page ]  to secondary store 14:  end if 15:  Read  newpage | va  (belongs to)   newpage  from secondary store 16:  Update  pte . tag,   pte . page ,  pte . valid 17:  if  wr  = 1  then 18:  pte . dirty     1 19:  end if 20:  return  pa  =  page *   sizeof  ( page )  +  offset
Approach 1  - Pure VM                  In application every memory access is in a virtual address space which is  translated to physical address during runtime using a predesigned algorithm. This is  a transparent approach towards application where they access memory directly and have full control on it.    Drwaback :   When every memory address is virtualized algorithm(function) to change virtual address to physical address is called which is an extra load on the system.
Approach 2  - Fixed Address VM                 In this approach, a region of the memory is marked as virtualized. Any memory access (load/store) that belongs to this marked region is translated. This approach requires the programmer to indicate to the vm-assembler the region marked as virtual. As opposed to the previous approach, in this case, the overhead of translation from virtual to physical address is reduced to only the memory region marked as virtual. This however, requires a runtime check to be made at every load/store to determine if the address is virtualized.This is achieved by modifying the vm-assembler so that it inserts code that does runtime check on every memory access and translates only those addresses that are virtualized. In our experiments, we tested this approach by marking all the data region belonging to global variables as belonging to virtual address space.
Approach 3  - Selective VM  Selective VM is similar to the previous approach, but is more fine-grained in terms of memory that is virtualized. Note that in the previous approach, a runtime check was required on every memory access to determine if the address is virtualized. Selective VM avoids this runtime check overhead by annotating data structures at source level. It requires the programmer to tag individual data structures as belonging to virtual address space (as opposed to an entire region). This annotation is done at variable declaration, using a #pragma directive. Any use or def of annotated data structure in the source is modified to a call to the virtual-to-physical function. This approach significantly reduces the runtime overhead by restricting the translation only to large data structures that can reap benefit out of virtualization. It gives the embedded programmer more control on what is virtualized. However, this approach is the least transparent to the application programmer compared to the other two approaches.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Future Perspective My future work  will focus on optimizing the virtual to physical translation  that can lead to reduction in execution time cycles. I had also planned to focus on considering  additional caching techniques , such as associative schemes.  I am also trying to find some way of implementing software MMU for normal systems (Laptops or Desktops) so that the interaction of Memory can be reduced and hence increase in the speed of the system.
Conclusion  Right now my study is towards a software virtual memory scheme for MMU-less embedded systems. I am trying this using a vm-aware assembler and a virtual memory library.The virtual memory system that is presented can be customized by adjusting two configuration parameters, namely, RAM size and Page size.  My future work will focus on optimizing this virtual memory implementation that can lead to reduction in execution time cycles. Also i want to extend and use this project for reducing the energy consuption for Systems contaning MMU (CPU's , Laptops and other Embedded Devices).
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Real Time Operating system (RTOS) - Embedded systems
Real Time Operating system (RTOS) - Embedded systemsReal Time Operating system (RTOS) - Embedded systems
Real Time Operating system (RTOS) - Embedded systems
Hariharan Ganesan
 
Linux device drivers
Linux device drivers Linux device drivers
Levels of Virtualization.docx
Levels of Virtualization.docxLevels of Virtualization.docx
Levels of Virtualization.docx
kumari36
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/Core
Shay Cohen
 
Browsing Linux Kernel Source
Browsing Linux Kernel SourceBrowsing Linux Kernel Source
Browsing Linux Kernel Source
Motaz Saad
 
Embedded linux
Embedded linuxEmbedded linux
Embedded linux
Wingston
 
RTOS for Embedded System Design
RTOS for Embedded System DesignRTOS for Embedded System Design
RTOS for Embedded System Design
anand hd
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
Sudhanshu Janwadkar
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
Goutam Sahoo
 
Basics of boot-loader
Basics of boot-loaderBasics of boot-loader
Basics of boot-loader
iamumr
 
Unix operating system architecture with file structure
Unix operating system architecture with file structure Unix operating system architecture with file structure
Unix operating system architecture with file structure
amol_chavan
 
Embedded systems
Embedded systemsEmbedded systems
Embedded systems
Manju Nathan
 
Embedded Systems: Lecture 2: Introduction to Embedded Systems
Embedded Systems: Lecture 2: Introduction to Embedded SystemsEmbedded Systems: Lecture 2: Introduction to Embedded Systems
Embedded Systems: Lecture 2: Introduction to Embedded Systems
Ahmed El-Arabawy
 
Beneath the Linux Interrupt handling
Beneath the Linux Interrupt handlingBeneath the Linux Interrupt handling
Beneath the Linux Interrupt handling
Bhoomil Chavda
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
Goutam Sahoo
 
RT linux
RT linuxRT linux
RT linux
SARITHA REDDY
 
Introduction to embedded system
Introduction to embedded systemIntroduction to embedded system
Introduction to embedded system
Revathi Subramaniam
 

What's hot (20)

Real Time Operating system (RTOS) - Embedded systems
Real Time Operating system (RTOS) - Embedded systemsReal Time Operating system (RTOS) - Embedded systems
Real Time Operating system (RTOS) - Embedded systems
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Levels of Virtualization.docx
Levels of Virtualization.docxLevels of Virtualization.docx
Levels of Virtualization.docx
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/Core
 
Browsing Linux Kernel Source
Browsing Linux Kernel SourceBrowsing Linux Kernel Source
Browsing Linux Kernel Source
 
Linux Kernel Overview
Linux Kernel OverviewLinux Kernel Overview
Linux Kernel Overview
 
Embedded linux
Embedded linuxEmbedded linux
Embedded linux
 
Basic Linux Internals
Basic Linux InternalsBasic Linux Internals
Basic Linux Internals
 
RTOS for Embedded System Design
RTOS for Embedded System DesignRTOS for Embedded System Design
RTOS for Embedded System Design
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
 
Basics of boot-loader
Basics of boot-loaderBasics of boot-loader
Basics of boot-loader
 
Unix operating system architecture with file structure
Unix operating system architecture with file structure Unix operating system architecture with file structure
Unix operating system architecture with file structure
 
Embedded systems
Embedded systemsEmbedded systems
Embedded systems
 
Embedded Systems: Lecture 2: Introduction to Embedded Systems
Embedded Systems: Lecture 2: Introduction to Embedded SystemsEmbedded Systems: Lecture 2: Introduction to Embedded Systems
Embedded Systems: Lecture 2: Introduction to Embedded Systems
 
Beneath the Linux Interrupt handling
Beneath the Linux Interrupt handlingBeneath the Linux Interrupt handling
Beneath the Linux Interrupt handling
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
 
RT linux
RT linuxRT linux
RT linux
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
Introduction to embedded system
Introduction to embedded systemIntroduction to embedded system
Introduction to embedded system
 

Viewers also liked

Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoSherif Mousa
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
Sherif Mousa
 
Building Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionBuilding Embedded Linux Systems Introduction
Building Embedded Linux Systems Introduction
Sherif Mousa
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
Sherif Mousa
 
Building Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchBuilding Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 Arch
Sherif Mousa
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
Jaime Barragan
 
How To Handle An IRD Audit - Atainz
How To Handle An IRD Audit - AtainzHow To Handle An IRD Audit - Atainz
How To Handle An IRD Audit - Atainz
Baucher Consulting Limited
 
Assistencia geologica
Assistencia geologicaAssistencia geologica
Assistencia geologicacrom68
 
Ensoft dvb 1
Ensoft dvb 1Ensoft dvb 1
Ensoft dvb 1
sarge
 
Embedded linux barco-20121001
Embedded linux barco-20121001Embedded linux barco-20121001
Embedded linux barco-20121001
Marc Leeman
 
sasikumarj_resume
sasikumarj_resumesasikumarj_resume
sasikumarj_resumeSasi Kumar
 
The move from a hardware centric design to a software centric design: GStream...
The move from a hardware centric design to a software centric design: GStream...The move from a hardware centric design to a software centric design: GStream...
The move from a hardware centric design to a software centric design: GStream...
Marc Leeman
 
OTT in Azerbaijan - Project Brief
OTT in Azerbaijan - Project BriefOTT in Azerbaijan - Project Brief
OTT in Azerbaijan - Project BriefFarhad Shahrivar
 
Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
 Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
Capria no_video_ship_detection_with_dvbt_software_defined_passive_radargrssieee
 
Buildin a small linux kernel
Buildin a small linux kernelBuildin a small linux kernel
Buildin a small linux kerneltrx2001
 
Standard java coding convention
Standard java coding conventionStandard java coding convention
Standard java coding conventionTam Thanh
 
An Ultra-Low Power Asynchronous-Logic
An Ultra-Low Power Asynchronous-LogicAn Ultra-Low Power Asynchronous-Logic
An Ultra-Low Power Asynchronous-LogicHossam Hassan
 
10 ways hardware engineers can make software integration easier
10 ways hardware engineers can make software integration easier10 ways hardware engineers can make software integration easier
10 ways hardware engineers can make software integration easier
Chris Simmonds
 

Viewers also liked (20)

Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
Building Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionBuilding Embedded Linux Systems Introduction
Building Embedded Linux Systems Introduction
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
 
Building Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchBuilding Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 Arch
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
 
Linux Workshop , Day 3
Linux Workshop , Day 3Linux Workshop , Day 3
Linux Workshop , Day 3
 
How To Handle An IRD Audit - Atainz
How To Handle An IRD Audit - AtainzHow To Handle An IRD Audit - Atainz
How To Handle An IRD Audit - Atainz
 
Assistencia geologica
Assistencia geologicaAssistencia geologica
Assistencia geologica
 
Ensoft dvb 1
Ensoft dvb 1Ensoft dvb 1
Ensoft dvb 1
 
Embedded linux barco-20121001
Embedded linux barco-20121001Embedded linux barco-20121001
Embedded linux barco-20121001
 
sasikumarj_resume
sasikumarj_resumesasikumarj_resume
sasikumarj_resume
 
The move from a hardware centric design to a software centric design: GStream...
The move from a hardware centric design to a software centric design: GStream...The move from a hardware centric design to a software centric design: GStream...
The move from a hardware centric design to a software centric design: GStream...
 
OTT in Azerbaijan - Project Brief
OTT in Azerbaijan - Project BriefOTT in Azerbaijan - Project Brief
OTT in Azerbaijan - Project Brief
 
DVB-T/H Solution
DVB-T/H  SolutionDVB-T/H  Solution
DVB-T/H Solution
 
Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
 Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
Capria no_video_ship_detection_with_dvbt_software_defined_passive_radar
 
Buildin a small linux kernel
Buildin a small linux kernelBuildin a small linux kernel
Buildin a small linux kernel
 
Standard java coding convention
Standard java coding conventionStandard java coding convention
Standard java coding convention
 
An Ultra-Low Power Asynchronous-Logic
An Ultra-Low Power Asynchronous-LogicAn Ultra-Low Power Asynchronous-Logic
An Ultra-Low Power Asynchronous-Logic
 
10 ways hardware engineers can make software integration easier
10 ways hardware engineers can make software integration easier10 ways hardware engineers can make software integration easier
10 ways hardware engineers can make software integration easier
 

Similar to Embedded Linux

MYSQL DATABASE Operating System Part2 (1).pptx
MYSQL DATABASE Operating System Part2 (1).pptxMYSQL DATABASE Operating System Part2 (1).pptx
MYSQL DATABASE Operating System Part2 (1).pptx
ArjayBalberan1
 
Symmetric multiprocessing and Microkernel
Symmetric multiprocessing and MicrokernelSymmetric multiprocessing and Microkernel
Symmetric multiprocessing and Microkernel
Manoraj Pannerselum
 
Computer's clasification
Computer's clasificationComputer's clasification
Computer's clasificationMayraChF
 
Introduction to mis
Introduction to misIntroduction to mis
Introduction to mis
Job Thomas
 
Multilevel arch & str org.& mips, 8086, memory
Multilevel arch & str org.& mips, 8086, memoryMultilevel arch & str org.& mips, 8086, memory
Multilevel arch & str org.& mips, 8086, memoryMahesh Kumar Attri
 
Operating Systems Structure1- Explain briefly why the objectives o.pdf
Operating Systems Structure1- Explain briefly why the objectives o.pdfOperating Systems Structure1- Explain briefly why the objectives o.pdf
Operating Systems Structure1- Explain briefly why the objectives o.pdf
rishabjain5053
 
Virtual Memory In Contemporary Microprocessors And 64-Bit Microprocessors Arc...
Virtual Memory In Contemporary Microprocessors And 64-Bit Microprocessors Arc...Virtual Memory In Contemporary Microprocessors And 64-Bit Microprocessors Arc...
Virtual Memory In Contemporary Microprocessors And 64-Bit Microprocessors Arc...Anurag Deb
 
How many total bits are required for a direct-mapped cache with 2048 .pdf
How many total bits are required for a direct-mapped cache with 2048 .pdfHow many total bits are required for a direct-mapped cache with 2048 .pdf
How many total bits are required for a direct-mapped cache with 2048 .pdf
Eye2eyeopticians10
 
Distributed Computing
Distributed ComputingDistributed Computing
Distributed Computing
Sudarsun Santhiappan
 
Module-1 Embedded computing.pdf
Module-1 Embedded computing.pdfModule-1 Embedded computing.pdf
Module-1 Embedded computing.pdf
Sitamarhi Institute of Technology
 
Modern operating system.......
Modern operating system.......Modern operating system.......
Modern operating system.......
vignesh0009
 
Trainingreport on embedded system
Trainingreport on embedded systemTrainingreport on embedded system
Trainingreport on embedded system
Mukul Mohal
 
STORAGE DEVICES & OPERATING SYSTEM SERVICES
STORAGE DEVICES & OPERATING SYSTEM SERVICESSTORAGE DEVICES & OPERATING SYSTEM SERVICES
STORAGE DEVICES & OPERATING SYSTEM SERVICES
Ayesha Tahir
 
Basics of OS & RTOS.ppt
Basics of OS & RTOS.pptBasics of OS & RTOS.ppt
Basics of OS & RTOS.ppt
Dr.YNM
 
Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02
KIET Group of Institutions, Ghaziabad
 
System Software ( Os )
System Software ( Os )System Software ( Os )
System Software ( Os )
Paula Smith
 
Chapter 5 It Architecture
Chapter 5 It ArchitectureChapter 5 It Architecture
Chapter 5 It ArchitectureUMaine
 

Similar to Embedded Linux (20)

MYSQL DATABASE Operating System Part2 (1).pptx
MYSQL DATABASE Operating System Part2 (1).pptxMYSQL DATABASE Operating System Part2 (1).pptx
MYSQL DATABASE Operating System Part2 (1).pptx
 
Symmetric multiprocessing and Microkernel
Symmetric multiprocessing and MicrokernelSymmetric multiprocessing and Microkernel
Symmetric multiprocessing and Microkernel
 
Computer's clasification
Computer's clasificationComputer's clasification
Computer's clasification
 
Introduction to mis
Introduction to misIntroduction to mis
Introduction to mis
 
TenAsys.Fall07
TenAsys.Fall07TenAsys.Fall07
TenAsys.Fall07
 
Multilevel arch & str org.& mips, 8086, memory
Multilevel arch & str org.& mips, 8086, memoryMultilevel arch & str org.& mips, 8086, memory
Multilevel arch & str org.& mips, 8086, memory
 
Operating Systems Structure1- Explain briefly why the objectives o.pdf
Operating Systems Structure1- Explain briefly why the objectives o.pdfOperating Systems Structure1- Explain briefly why the objectives o.pdf
Operating Systems Structure1- Explain briefly why the objectives o.pdf
 
Virtual Memory In Contemporary Microprocessors And 64-Bit Microprocessors Arc...
Virtual Memory In Contemporary Microprocessors And 64-Bit Microprocessors Arc...Virtual Memory In Contemporary Microprocessors And 64-Bit Microprocessors Arc...
Virtual Memory In Contemporary Microprocessors And 64-Bit Microprocessors Arc...
 
How many total bits are required for a direct-mapped cache with 2048 .pdf
How many total bits are required for a direct-mapped cache with 2048 .pdfHow many total bits are required for a direct-mapped cache with 2048 .pdf
How many total bits are required for a direct-mapped cache with 2048 .pdf
 
Distributed Computing
Distributed ComputingDistributed Computing
Distributed Computing
 
Module-1 Embedded computing.pdf
Module-1 Embedded computing.pdfModule-1 Embedded computing.pdf
Module-1 Embedded computing.pdf
 
Modern operating system.......
Modern operating system.......Modern operating system.......
Modern operating system.......
 
Itc chapter # 9
Itc   chapter # 9Itc   chapter # 9
Itc chapter # 9
 
Trainingreport on embedded system
Trainingreport on embedded systemTrainingreport on embedded system
Trainingreport on embedded system
 
STORAGE DEVICES & OPERATING SYSTEM SERVICES
STORAGE DEVICES & OPERATING SYSTEM SERVICESSTORAGE DEVICES & OPERATING SYSTEM SERVICES
STORAGE DEVICES & OPERATING SYSTEM SERVICES
 
Par com
Par comPar com
Par com
 
Basics of OS & RTOS.ppt
Basics of OS & RTOS.pptBasics of OS & RTOS.ppt
Basics of OS & RTOS.ppt
 
Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02
 
System Software ( Os )
System Software ( Os )System Software ( Os )
System Software ( Os )
 
Chapter 5 It Architecture
Chapter 5 It ArchitectureChapter 5 It Architecture
Chapter 5 It Architecture
 

Recently uploaded

The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
beazzy04
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 

Recently uploaded (20)

The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 

Embedded Linux

  • 1. Abhishek Srivastava (07/MCA/12) Presented By : Term Paper Report on
  • 2. INTRODUCTION In case of embedded systems, the rise in processing speeds of embedded processors and microcontroller evolution has lead to the possibility of running computation and data intensive applications on small embedded devices that earlier only ran on desktop-class systems. From a memory stand point, there is a similar need for running larger and more data intensive applications on embedded devices.However, support for large memory address spaces, specifically, virtual memory, for MMU-less embedded systems is always lacking. But by implementing virtual memory scheme for MMU-less systems as a software , based on an application level virtual memory library and a virtual memory aware assembler. This type of implementation is open to programmer and always available for changes.
  • 3. Many software developers in recent years have turned to Linux as their operating system of choice. Until the advent of uClinux developers of smaller embedded systems, usually incorporating microprocessors with no memory management unit could not take advantage of Linux in their designs. UClinux is a variant of mainstream Linux that runs on 'MMU-less' processor architectures. Component costs are of primary concern in embedded systems, which are typically required to be small and inexpensive. Microprocessors with on-chip memory management unit (MMU) hardware tend to be complex and expensive, and as such are not typically selected for small, simple embedded systems which do not require them. With many advantages of MMU less Systems (like : speed and cost efective ness) use of them is increasing day by day and a proper , stable and real time Operating system is required , and in this paper i am going to study this type of operating systems and schemes of implementing Virtual memory using software.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Memory Management and Memory Management Unit Memory management  is the act of managing computer memory. In its simpler forms, this involves providing ways to allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. The management of main memory is critical to the computer system. A  memory management unit  (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware component responsible for handling accesses to memory requested by the central processing unit (CPU). Its functions include translation of virtual addresses to physical addresses (i.e.,virtual memory management ) , memory protection, cache control, bus arbitration etc.
  • 11.
  • 12. Why create an MMU-less Linux?   Linux has become popular on embedded devices—especially consumer gadgets, telecom routers and switches, Internet appliances and automotive applications. Because of the modular nature of Linux, it is easy to slim down the operating environment by removing utility programs, tools, and other system services that are not needed in an embedded environment. Advantages of Linux is that it is a fully functional OS, with support for network that is becoming a very important requirement in embedded systems. We can add or unload modules from the kernel at runtime, this makes embedded Linux very flexible. It is more encouraging that the Linux code is widely available , portable to any processor, scalable and stable .
  • 13.
  • 14. Diagram Below shows the data flow towards target system , The application source code. Important is Application’s view of address space is        as large as the secondary storage i.e., the virtual address space. The virtual memory library. This library consists of an implementation of virtual to physical address translation (vm.c). It also includes a header file (vm.h) with configurable parameters (page size, ram size etc.)
  • 15.
  • 16.
  • 17.
  • 18. Virtual Memory Approach Algorithm for Virtual to Physical memory Address Translation   1: function virtual-to-physical 2: Input va : virtual address, wr : 1 => write ;0 => read 3: Output pa : physical address 4: Decompose va into ( tag ; page ; off set ) 5: pte  PTE [ page ] 6: if pte . tag = va . tag and pte . valid = 1 then 7: if wr = 1 then 8: pte : dirty  1 9: end if 10: return pa = page * sizeof ( page ) + offset 11: end if 12: if pte . valid = 1 and pte . dirty = 1 then 13: write RAM [ page ] to secondary store 14: end if 15: Read newpage | va (belongs to) newpage from secondary store 16: Update pte . tag, pte . page , pte . valid 17: if wr = 1 then 18: pte . dirty  1 19: end if 20: return pa = page * sizeof ( page ) + offset
  • 19. Approach 1 - Pure VM               In application every memory access is in a virtual address space which is  translated to physical address during runtime using a predesigned algorithm. This is  a transparent approach towards application where they access memory directly and have full control on it.   Drwaback :   When every memory address is virtualized algorithm(function) to change virtual address to physical address is called which is an extra load on the system.
  • 20. Approach 2 - Fixed Address VM               In this approach, a region of the memory is marked as virtualized. Any memory access (load/store) that belongs to this marked region is translated. This approach requires the programmer to indicate to the vm-assembler the region marked as virtual. As opposed to the previous approach, in this case, the overhead of translation from virtual to physical address is reduced to only the memory region marked as virtual. This however, requires a runtime check to be made at every load/store to determine if the address is virtualized.This is achieved by modifying the vm-assembler so that it inserts code that does runtime check on every memory access and translates only those addresses that are virtualized. In our experiments, we tested this approach by marking all the data region belonging to global variables as belonging to virtual address space.
  • 21. Approach 3 - Selective VM Selective VM is similar to the previous approach, but is more fine-grained in terms of memory that is virtualized. Note that in the previous approach, a runtime check was required on every memory access to determine if the address is virtualized. Selective VM avoids this runtime check overhead by annotating data structures at source level. It requires the programmer to tag individual data structures as belonging to virtual address space (as opposed to an entire region). This annotation is done at variable declaration, using a #pragma directive. Any use or def of annotated data structure in the source is modified to a call to the virtual-to-physical function. This approach significantly reduces the runtime overhead by restricting the translation only to large data structures that can reap benefit out of virtualization. It gives the embedded programmer more control on what is virtualized. However, this approach is the least transparent to the application programmer compared to the other two approaches.
  • 22.
  • 23.
  • 24. Future Perspective My future work will focus on optimizing the virtual to physical translation that can lead to reduction in execution time cycles. I had also planned to focus on considering additional caching techniques , such as associative schemes. I am also trying to find some way of implementing software MMU for normal systems (Laptops or Desktops) so that the interaction of Memory can be reduced and hence increase in the speed of the system.
  • 25. Conclusion Right now my study is towards a software virtual memory scheme for MMU-less embedded systems. I am trying this using a vm-aware assembler and a virtual memory library.The virtual memory system that is presented can be customized by adjusting two configuration parameters, namely, RAM size and Page size. My future work will focus on optimizing this virtual memory implementation that can lead to reduction in execution time cycles. Also i want to extend and use this project for reducing the energy consuption for Systems contaning MMU (CPU's , Laptops and other Embedded Devices).
  • 26.

Editor's Notes

  1. The processor generated virtual address consists of B-bits (If the secondary storage is large enough, we could have B = N ). This address is broken down into offset ( K least significant bits), page ( M - K bits) and tag ( N - M bits). The page bits of virtual address point to an entry in the PTE. The virtual address tag bits are compared to the tag field of this PTE. If the valid bit is set and the tag bits match, we have a hit (i.e., the physical address is in main memory). The actual physical address is computed by concatenating offset bits of virtual address with “page” entry of the PTE. There can be cases other than a hit, depending on the result of comparing tags, valid bit and dirty bit. These are described in the virtual-to-physical translation algorithm. This algorithm is similar to a direct mapped address translation used in traditional operating systems. Note that the virtual memory library, mentioned in previous section, has the implementation of 1.