SlideShare a Scribd company logo
1 of 24
Synchron - ITS
An Interactive Tutoring System to Teach Process Synchronization
and Shared Memory Concepts in an Operating Systems Course
Manoj Kumar Putchala
Graduate Research Assistant
Wright State University
Dayton, Ohio - USA
Overview
What : OS Course Work
 Core Course in Computer Science Curricula across worldwide institutions
 Complicated coursework, and the internal processes and mechanisms are often difficult
for students to grasp, particularly those that still struggle with programming
High level abstractions of structures and algorithms are taught in class followed by
homework or project assignments
 What many students need is a way to connect the low-level details of an operating
system’s implementation with the high-level abstractions provided in the class, all while
being accessible to people who are still improving newly-acquired programming skills.
What : Synchronization Concepts
Process synchronization: when two or more processes share memory, they should access it in an
orderly fashion to avoid race conditions and deadlocks.
 Producer-Consumer Problem
 Process Synchronization using Mutex
 Critical Section Problem
 Monitor solution for Producer-Consumer Problem
 Dining Philosopher Problem
What : Tool Introduction
 Three step process :
1) Demonstrate the concepts and algorithms at high level
2) Self-Validate the understanding levels of concepts through an inquiry based system
3) Integrate the high-level models with low-level information collected from a running
operating system
 Engages Critical Thinking
 Multi-purpose – Simulator and Tutor
 Monitoring and Control
 Visual and Interactive Graphics
Why : Past Systems
 Operating systems run in supervisor mode which makes it more difficult to use the standard
debugging methods students are used to.
Instructional Operating Systems :
 Geek OS – “bare-hardware” approach but contains a substantial amount of source code (4,202
lines for Geek OS and 14,886 lines of MINIX)
 Nachos-OS, ICS-OS, Pintos and RCOS and Simple-OS – have poor visualization graphics
 Dex-OS – Written in FASM assembly code and C, covers only memory management concepts
Tutoring Systems:
 Proc_OS and Alg_OS – Provide only visualization of theoretical concepts but lack practical task
training
Why : Mission Need
 Must be easy to use, easy to understand, and accessible for students who have limited
knowledge of systems-level programming in C or assembly language,
 Must present theoretical concepts, data structures, and algorithms involved with synchronization
and shared memory, similar to the box-and-line diagrams found in Operating Systems textbooks,
 Must allow a student to interact with the tool to explore those concepts, data structures, and
algorithms work,
 Must present realistic source code examples that can help students connect theory to
implementation details, and
 Must collect, integrate, and visualize data from a running operating system so students can see
the implementation details in motion.
How: Approach
UC1. Select log in type (guest user or
registered user).
UC2. Create user account (if registered
user).
UC3. Select a concept from concept
list.
UC4. Choose a mode (Simulator,
Manual, or Self-check).
UC5. Estimate and validate self-check
results.
UC6. Logout.
How: Implementation UI-1
 Implemented using JAVA – JSwing.
 The home page lists the concepts to be
taught
 A user account is required to access the
system, so the first time a user access it, he
or she creates a new user account and logs
into the application with valid credentials.
 An administrator account is used for
teachers to evaluate students’ performance.
How: Implementation UI-2
 Producer-Consumer Problem: Two CPU
threads, the one that produces data and the
other that consumes it
 Both share a data variable (in this case a
counter), which may cause inconsistency or
errors due to improper signaling or
synchronization.
 Synchron-ITS implements multithreading
techniques using POSIX threads in Java to
demonstrate this problem.
How: Implementation UI-3
 Critical Section – program code that
contains crucial operations
 No two processes are allowed to be in
their critical sections at the same time
 Synchron- ITS shows five
different solutions for this problem,
each with its own disadvantage,
followed by an improved solution.
How: Implementation UI-4
 Mutex – Binary Semaphores with
values 0 and 1
 Context Switch Mechanism
 Initial value of Mutex is 1
 Process gets blocked when the mutex
value is less than 0
 Process gets unblocked when values
turns to 1
 Busy Waiting Problem is an issue
here
How: Implementation UI-5
 Monitor: An Abstract Data Type
where
multiple process defined in the
monitor are executed at one time
 Monitors resolve timing errors
caused by Semaphores
 Use of wait () and signal ()
operations on conditional variables ‘x’
and ‘y’
How: Implementation UI-6
Dining Philosophers Problem:
 N-Philosophers with N-Chopsticks at a
circular table
 Each philosopher requires two chop sticks
to have rice from the bowl (processes
requiring resources)
 Possible States – Thinking, Eating
 Synchronization is achieved by using
shared semaphores along with primitive
operations wait () and signal ()
How: Modes of Operation - Autonomous
Three Modes of Operation :
a) Autonomous
b) Real-Time
c) Self-Validation
Autonomous:
 Algorithms execute with no interruption until it has completed
 Default Parameters are either taken from the database or hard-coded
How: Modes of Operation – Real Time
 The system will draw data from a running
Linux system so users inspect the behavior of
the operating system.
 Synchron-ITS is written in the Java
programming language, and modules for
accessing data from the operating system are
written as callable C programs in Linux.
 Synchron-ITS accesses them using inter-
process communication (IPC) through method
calls to the Java Native Interface (JNI).
How: Modes of Operation – Self Validation
 Program steps into a crucial step in the
algorithm and prompts the user to guess the
values that will result upon completion of
that step.
 If the student’s estimated output is
incorrect, the system presents a message
containing the actual correct values and an
explanation as to possible misunderstandings
that might have caused the error.
 Errors are captured and corrective actions
are recommended
How: Programming Assignments
The tool provides a set of small and focused programming assignments to implement concurrency in C
and Java. The list of concurrency assignments are:
 Implement a synchronization primitive to block multiple process that are depending on an event to get
triggered;
 Implement a mutex mechanism for multiple processes by a user-space daemon;
 Implement a monitor solution for the dining philosophers problem; and
 Select and implement an appropriate concurrency primitive which is efficient and correct for a various
synchronization problems.
How: Test Cases
 Black Box Testing
 UI Testing
 Start Pause Resume Terminate buttons
 Integration Testing
 Regression Testing
 Stress Testing
How: Technology Acceptance Model
 Selection of participants,
 Testing procedure
 Questionnaire
 Perceived usefulness
 Intention
 Attitude toward its use
 Subjective norm
 Perceived ease of use
Where : Present & Future
Present:
 Version 1 is developed
 User Experiments are yet to be done on Spring Students
 5 programming assignments
 Kernel Programming Approach
Future: Version 2
 3D visualizations – using Java 3D and Unity 3D
 Integration to Mobile Platform
 Experimenting with users (students and researchers)
Where : Summary
Anticipated Benefits
 Education Resource for Academic Community
 Reduce the difficulties for both the transmission of the concepts and for better understanding
 Reverse Engineering Tool
 OS Simulator
 Helps the students or researchers to develop a Operating System from scratch
 Programming Benefits
Questions & Collaborations?
Manoj Kumar Putchala, (937) 782-8653
putchala.3@wright.edu
Primary Research Work : Internet of Things (IoT) Security using Machine
Learning
- Thank you

More Related Content

What's hot

Smart document sharing application presentation(stufac connect)
Smart document sharing application presentation(stufac connect)Smart document sharing application presentation(stufac connect)
Smart document sharing application presentation(stufac connect)priyanka747
 
A novel approach for teaching system software by integrating with other courses
A novel approach for teaching system software by integrating with other coursesA novel approach for teaching system software by integrating with other courses
A novel approach for teaching system software by integrating with other courseseSAT Journals
 
Time table management system
Time table management systemTime table management system
Time table management systemshivani sharma
 
Assesmment System - project report
Assesmment System - project reportAssesmment System - project report
Assesmment System - project reportArpit Pandya
 
REALIZING A LOOSELY-COUPLED STUDENTS PORTAL FRAMEWORK
REALIZING A LOOSELY-COUPLED STUDENTS PORTAL FRAMEWORKREALIZING A LOOSELY-COUPLED STUDENTS PORTAL FRAMEWORK
REALIZING A LOOSELY-COUPLED STUDENTS PORTAL FRAMEWORKijseajournal
 
17512 2017 winter model answer paper
17512 2017 winter model answer paper 17512 2017 winter model answer paper
17512 2017 winter model answer paper Ankit Dubey
 
Time Table Management system
Time Table Management systemTime Table Management system
Time Table Management systemShaswat Lovee
 
Performance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software ArchitecturePerformance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software ArchitectureEditor IJCATR
 
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...ijseajournal
 
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
An Adjacent Analysis of the Parallel Programming Model Perspective: A SurveyIRJET Journal
 

What's hot (13)

Smart document sharing application presentation(stufac connect)
Smart document sharing application presentation(stufac connect)Smart document sharing application presentation(stufac connect)
Smart document sharing application presentation(stufac connect)
 
A novel approach for teaching system software by integrating with other courses
A novel approach for teaching system software by integrating with other coursesA novel approach for teaching system software by integrating with other courses
A novel approach for teaching system software by integrating with other courses
 
Time table management system
Time table management systemTime table management system
Time table management system
 
Assesmment System - project report
Assesmment System - project reportAssesmment System - project report
Assesmment System - project report
 
REALIZING A LOOSELY-COUPLED STUDENTS PORTAL FRAMEWORK
REALIZING A LOOSELY-COUPLED STUDENTS PORTAL FRAMEWORKREALIZING A LOOSELY-COUPLED STUDENTS PORTAL FRAMEWORK
REALIZING A LOOSELY-COUPLED STUDENTS PORTAL FRAMEWORK
 
SE18_Lec 03_ RUP
SE18_Lec 03_ RUPSE18_Lec 03_ RUP
SE18_Lec 03_ RUP
 
vb research
vb researchvb research
vb research
 
17512 2017 winter model answer paper
17512 2017 winter model answer paper 17512 2017 winter model answer paper
17512 2017 winter model answer paper
 
Time Table Management system
Time Table Management systemTime Table Management system
Time Table Management system
 
Final edu junction_ss (1)
Final edu junction_ss (1)Final edu junction_ss (1)
Final edu junction_ss (1)
 
Performance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software ArchitecturePerformance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software Architecture
 
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...
 
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 

Similar to C2-4-Putchala

CE-LEARNING-CTS2016_paper_5
CE-LEARNING-CTS2016_paper_5CE-LEARNING-CTS2016_paper_5
CE-LEARNING-CTS2016_paper_5Manoj Kumar
 
Lab management
Lab managementLab management
Lab managementlogumca
 
Formal Definition of Collaborative Spaces
Formal Definition of Collaborative SpacesFormal Definition of Collaborative Spaces
Formal Definition of Collaborative SpacesJean Vanderdonckt
 
Online Exam Management System(OEMS)
Online Exam Management System(OEMS)Online Exam Management System(OEMS)
Online Exam Management System(OEMS)PUST
 
A Development Shell For Cooperative Problem-Solving Environments
A Development Shell For Cooperative Problem-Solving EnvironmentsA Development Shell For Cooperative Problem-Solving Environments
A Development Shell For Cooperative Problem-Solving EnvironmentsJody Sullivan
 
System analysis and_design.docx
System analysis and_design.docxSystem analysis and_design.docx
System analysis and_design.docxAlaJebnoun
 
Online Exam System_Industrial Report
Online Exam System_Industrial ReportOnline Exam System_Industrial Report
Online Exam System_Industrial ReportManmeet Sinha
 
A Computational Framework for Multi-dimensional Context-aware Adaptation
A Computational Framework for Multi-dimensional Context-aware AdaptationA Computational Framework for Multi-dimensional Context-aware Adaptation
A Computational Framework for Multi-dimensional Context-aware AdaptationSerenoa Project
 
online-examination-system.pptx
online-examination-system.pptxonline-examination-system.pptx
online-examination-system.pptxNehal1231
 
UNIT V TESTING.pptx
UNIT V TESTING.pptxUNIT V TESTING.pptx
UNIT V TESTING.pptxanguraju1
 
CS8603_Notes_003-1_edubuzz360.pdf
CS8603_Notes_003-1_edubuzz360.pdfCS8603_Notes_003-1_edubuzz360.pdf
CS8603_Notes_003-1_edubuzz360.pdfKishaKiddo
 
Online Quiz System Project Report
Online Quiz System Project Report Online Quiz System Project Report
Online Quiz System Project Report Kishan Maurya
 

Similar to C2-4-Putchala (20)

CE-LEARNING-CTS2016_paper_5
CE-LEARNING-CTS2016_paper_5CE-LEARNING-CTS2016_paper_5
CE-LEARNING-CTS2016_paper_5
 
Formal Definition of Collaborative Spaces
Formal Definition of Collaborative Spaces Formal Definition of Collaborative Spaces
Formal Definition of Collaborative Spaces
 
Lab management
Lab managementLab management
Lab management
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Proposal with sdlc
Proposal with sdlcProposal with sdlc
Proposal with sdlc
 
Student report
Student reportStudent report
Student report
 
Formal Definition of Collaborative Spaces
Formal Definition of Collaborative SpacesFormal Definition of Collaborative Spaces
Formal Definition of Collaborative Spaces
 
Week 10
Week 10Week 10
Week 10
 
Week 10
Week 10Week 10
Week 10
 
software engineering
software engineering software engineering
software engineering
 
Online Exam Management System(OEMS)
Online Exam Management System(OEMS)Online Exam Management System(OEMS)
Online Exam Management System(OEMS)
 
A Development Shell For Cooperative Problem-Solving Environments
A Development Shell For Cooperative Problem-Solving EnvironmentsA Development Shell For Cooperative Problem-Solving Environments
A Development Shell For Cooperative Problem-Solving Environments
 
System analysis and_design.docx
System analysis and_design.docxSystem analysis and_design.docx
System analysis and_design.docx
 
Online Exam System_Industrial Report
Online Exam System_Industrial ReportOnline Exam System_Industrial Report
Online Exam System_Industrial Report
 
Sdlc process
Sdlc processSdlc process
Sdlc process
 
A Computational Framework for Multi-dimensional Context-aware Adaptation
A Computational Framework for Multi-dimensional Context-aware AdaptationA Computational Framework for Multi-dimensional Context-aware Adaptation
A Computational Framework for Multi-dimensional Context-aware Adaptation
 
online-examination-system.pptx
online-examination-system.pptxonline-examination-system.pptx
online-examination-system.pptx
 
UNIT V TESTING.pptx
UNIT V TESTING.pptxUNIT V TESTING.pptx
UNIT V TESTING.pptx
 
CS8603_Notes_003-1_edubuzz360.pdf
CS8603_Notes_003-1_edubuzz360.pdfCS8603_Notes_003-1_edubuzz360.pdf
CS8603_Notes_003-1_edubuzz360.pdf
 
Online Quiz System Project Report
Online Quiz System Project Report Online Quiz System Project Report
Online Quiz System Project Report
 

C2-4-Putchala

  • 1. Synchron - ITS An Interactive Tutoring System to Teach Process Synchronization and Shared Memory Concepts in an Operating Systems Course Manoj Kumar Putchala Graduate Research Assistant Wright State University Dayton, Ohio - USA
  • 2.
  • 4. What : OS Course Work  Core Course in Computer Science Curricula across worldwide institutions  Complicated coursework, and the internal processes and mechanisms are often difficult for students to grasp, particularly those that still struggle with programming High level abstractions of structures and algorithms are taught in class followed by homework or project assignments  What many students need is a way to connect the low-level details of an operating system’s implementation with the high-level abstractions provided in the class, all while being accessible to people who are still improving newly-acquired programming skills.
  • 5. What : Synchronization Concepts Process synchronization: when two or more processes share memory, they should access it in an orderly fashion to avoid race conditions and deadlocks.  Producer-Consumer Problem  Process Synchronization using Mutex  Critical Section Problem  Monitor solution for Producer-Consumer Problem  Dining Philosopher Problem
  • 6. What : Tool Introduction  Three step process : 1) Demonstrate the concepts and algorithms at high level 2) Self-Validate the understanding levels of concepts through an inquiry based system 3) Integrate the high-level models with low-level information collected from a running operating system  Engages Critical Thinking  Multi-purpose – Simulator and Tutor  Monitoring and Control  Visual and Interactive Graphics
  • 7. Why : Past Systems  Operating systems run in supervisor mode which makes it more difficult to use the standard debugging methods students are used to. Instructional Operating Systems :  Geek OS – “bare-hardware” approach but contains a substantial amount of source code (4,202 lines for Geek OS and 14,886 lines of MINIX)  Nachos-OS, ICS-OS, Pintos and RCOS and Simple-OS – have poor visualization graphics  Dex-OS – Written in FASM assembly code and C, covers only memory management concepts Tutoring Systems:  Proc_OS and Alg_OS – Provide only visualization of theoretical concepts but lack practical task training
  • 8. Why : Mission Need  Must be easy to use, easy to understand, and accessible for students who have limited knowledge of systems-level programming in C or assembly language,  Must present theoretical concepts, data structures, and algorithms involved with synchronization and shared memory, similar to the box-and-line diagrams found in Operating Systems textbooks,  Must allow a student to interact with the tool to explore those concepts, data structures, and algorithms work,  Must present realistic source code examples that can help students connect theory to implementation details, and  Must collect, integrate, and visualize data from a running operating system so students can see the implementation details in motion.
  • 9. How: Approach UC1. Select log in type (guest user or registered user). UC2. Create user account (if registered user). UC3. Select a concept from concept list. UC4. Choose a mode (Simulator, Manual, or Self-check). UC5. Estimate and validate self-check results. UC6. Logout.
  • 10. How: Implementation UI-1  Implemented using JAVA – JSwing.  The home page lists the concepts to be taught  A user account is required to access the system, so the first time a user access it, he or she creates a new user account and logs into the application with valid credentials.  An administrator account is used for teachers to evaluate students’ performance.
  • 11. How: Implementation UI-2  Producer-Consumer Problem: Two CPU threads, the one that produces data and the other that consumes it  Both share a data variable (in this case a counter), which may cause inconsistency or errors due to improper signaling or synchronization.  Synchron-ITS implements multithreading techniques using POSIX threads in Java to demonstrate this problem.
  • 12. How: Implementation UI-3  Critical Section – program code that contains crucial operations  No two processes are allowed to be in their critical sections at the same time  Synchron- ITS shows five different solutions for this problem, each with its own disadvantage, followed by an improved solution.
  • 13. How: Implementation UI-4  Mutex – Binary Semaphores with values 0 and 1  Context Switch Mechanism  Initial value of Mutex is 1  Process gets blocked when the mutex value is less than 0  Process gets unblocked when values turns to 1  Busy Waiting Problem is an issue here
  • 14. How: Implementation UI-5  Monitor: An Abstract Data Type where multiple process defined in the monitor are executed at one time  Monitors resolve timing errors caused by Semaphores  Use of wait () and signal () operations on conditional variables ‘x’ and ‘y’
  • 15. How: Implementation UI-6 Dining Philosophers Problem:  N-Philosophers with N-Chopsticks at a circular table  Each philosopher requires two chop sticks to have rice from the bowl (processes requiring resources)  Possible States – Thinking, Eating  Synchronization is achieved by using shared semaphores along with primitive operations wait () and signal ()
  • 16. How: Modes of Operation - Autonomous Three Modes of Operation : a) Autonomous b) Real-Time c) Self-Validation Autonomous:  Algorithms execute with no interruption until it has completed  Default Parameters are either taken from the database or hard-coded
  • 17. How: Modes of Operation – Real Time  The system will draw data from a running Linux system so users inspect the behavior of the operating system.  Synchron-ITS is written in the Java programming language, and modules for accessing data from the operating system are written as callable C programs in Linux.  Synchron-ITS accesses them using inter- process communication (IPC) through method calls to the Java Native Interface (JNI).
  • 18. How: Modes of Operation – Self Validation  Program steps into a crucial step in the algorithm and prompts the user to guess the values that will result upon completion of that step.  If the student’s estimated output is incorrect, the system presents a message containing the actual correct values and an explanation as to possible misunderstandings that might have caused the error.  Errors are captured and corrective actions are recommended
  • 19. How: Programming Assignments The tool provides a set of small and focused programming assignments to implement concurrency in C and Java. The list of concurrency assignments are:  Implement a synchronization primitive to block multiple process that are depending on an event to get triggered;  Implement a mutex mechanism for multiple processes by a user-space daemon;  Implement a monitor solution for the dining philosophers problem; and  Select and implement an appropriate concurrency primitive which is efficient and correct for a various synchronization problems.
  • 20. How: Test Cases  Black Box Testing  UI Testing  Start Pause Resume Terminate buttons  Integration Testing  Regression Testing  Stress Testing
  • 21. How: Technology Acceptance Model  Selection of participants,  Testing procedure  Questionnaire  Perceived usefulness  Intention  Attitude toward its use  Subjective norm  Perceived ease of use
  • 22. Where : Present & Future Present:  Version 1 is developed  User Experiments are yet to be done on Spring Students  5 programming assignments  Kernel Programming Approach Future: Version 2  3D visualizations – using Java 3D and Unity 3D  Integration to Mobile Platform  Experimenting with users (students and researchers)
  • 23. Where : Summary Anticipated Benefits  Education Resource for Academic Community  Reduce the difficulties for both the transmission of the concepts and for better understanding  Reverse Engineering Tool  OS Simulator  Helps the students or researchers to develop a Operating System from scratch  Programming Benefits
  • 24. Questions & Collaborations? Manoj Kumar Putchala, (937) 782-8653 putchala.3@wright.edu Primary Research Work : Internet of Things (IoT) Security using Machine Learning - Thank you