
Formal Verification in OS Memory Management
Inquiry Framework
Question Framework
Driving Question
The overarching question that guides the entire project.How can we apply formal methods to verify the reliability and efficiency of operating systems' memory management, using the concepts of logic, automatons, formal languages, and specification?Essential Questions
Supporting questions that break down major concepts.- How can propositional and predicate logic be applied to the verification of operating systems, particularly in the context of memory management?
- What role do automatons and formal languages play in the specification and verification of an operating system's memory management system?
- How can formal modelling and specification contribute to identifying and resolving potential vulnerabilities in operating systems?
- In what ways do formal methods enhance the reliability and efficiency of memory management in operating systems?
- How are concepts learned in formal methods applied specifically to the development, specification, and verification of software systems?
Standards & Learning Goals
Learning Goals
By the end of this project, students will be able to:- Apply formal modelling and specification techniques to verify and improve the reliability and efficiency of operating systems' memory management.
- Use formal logic, including propositional and predicate logic, to verify the correctness of memory management algorithms in operating systems.
- Understand and employ automatons and formal languages to aid in the specification and verification of memory management.
- Identify and address potential vulnerabilities in operating systems through the use of formal methods.
- Apply knowledge from formal methods courses to practical scenarios in operating system memory management.
CSTA K-12 Computer Science Standards
ABET CS Outcomes
Common Core State Standards for Mathematics
Entry Events
Events that will be used to introduce the project to studentsHackathon Challenge: Fix the Bug
Launch a simulation where students are challenged to 'hack' into a system with buggy memory management. As they exploit weaknesses and observe flaws, they embark on a mission to correct these issues using their knowledge of formal methods.Portfolio Activities
Portfolio Activities
These activities progressively build towards your learning goals, with each submission contributing to the student's final portfolio.Logic Play for OS Verification
In this activity, students will use their knowledge of propositional and predicate logic to create logical expressions representing memory management processes within operating systems. They will learn how to apply these concepts for verifying system behaviors and identifying flaws.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityLogical models representing memory management processes with verified accuracy.Alignment
How this activity aligns with the learning objectives & standardsAligns with CCSS.MATH.PIR standards as students apply propositional and predicate logic to verification tasks.Automaton Builders for Memory Specs
Students will delve into the role of automatons and formal languages by building finite state machines (FSMs) that model memory management algorithms. This activity bridges theoretical concepts with practical system specifications.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA finite state machine model accurately representing a memory management algorithm, with validated transitions and states.Alignment
How this activity aligns with the learning objectives & standardsSupports ABET-c standards by requiring design and evaluation of system components using engineering techniques.Formal Methods Detective
In this investigative task, students will apply formal modelling techniques to identify potential vulnerabilities in an OS's memory management. Using formal methods, they will specify and verify solutions to these vulnerabilities.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA comprehensive report showcasing identified vulnerabilities, proposed solutions, and their formal verification.Alignment
How this activity aligns with the learning objectives & standardsFits CSTA-3A-NC-5 by applying computational models and simulations to solve complex OS memory management problems.Software Specification Savvy
Students will combine all concepts learned to design and implement a full specification for an OS memory management system. They will use formal methods to ensure its reliability and efficiency, creating a complete verification plan.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA complete, verified specification for an OS memory management system, documented for real-world application.Alignment
How this activity aligns with the learning objectives & standardsMeets ABET-c standards by designing, implementing, and verifying a computer-based system to meet desired needs.Rubric & Reflection
Portfolio Rubric
Grading criteria for assessing the overall project portfolioFormal Verification of OS Memory Management Assessment Rubric
Understanding and Application of Formal Logic
Evaluates the student's comprehension and practical application of logic in memory management verification.Conceptual Understanding
Measures understanding of propositional and predicate logic in context of OS processes.
Exemplary
4 PointsDemonstrates a sophisticated understanding of logic principles, with innovative applications.
Proficient
3 PointsShows thorough understanding and appropriate application of logic concepts.
Developing
2 PointsExhibits emerging understanding with some inconsistencies in application.
Beginning
1 PointsShows minimal understanding and struggles with applying logic concepts.
Logical Expression Development
Assesses ability to develop and simulate logical expressions for OS processes.
Exemplary
4 PointsCreates highly accurate and innovative logical expressions, successfully identifying inconsistencies.
Proficient
3 PointsDevelops accurate logical expressions and identifies inconsistencies effectively.
Developing
2 PointsLogical expressions are somewhat accurate with limited error identification.
Beginning
1 PointsStruggles to develop accurate logical expressions and identify errors.
Modeling with Automatons and Formal Languages
Assesses the student's capability to use FSMs for modeling memory management algorithms.Modeling Techniques
Evaluates design and simulation of finite state machines for memory management.
Exemplary
4 PointsDesigns innovative and precise FSMs, successfully simulating real-world scenarios.
Proficient
3 PointsCreates effective FSMs with clear, accurate simulations of algorithms.
Developing
2 PointsFSM models are somewhat accurate but lack thorough simulation.
Beginning
1 PointsFSMs demonstrate limited accuracy and simulation effectiveness.
Integration of Formal Languages
Assesses application of formal languages in FSM and system specification.
Exemplary
4 PointsExemplary use of formal languages with innovative integration into FSMs.
Proficient
3 PointsEffectively integrates formal languages into system specifications and FSMs.
Developing
2 PointsShows basic integration of formal languages with some inconsistencies.
Beginning
1 PointsLacks effective integration of formal languages into models and specifications.
Identification and Resolution of OS Vulnerabilities
Evaluates the identification of vulnerabilities and formulation of verified solutions using formal methods.Vulnerability Analysis
Measures ability to identify and model vulnerabilities within OS memory management.
Exemplary
4 PointsIdentifies vulnerabilities with exceptional insight and accuracy, proposing innovative solutions.
Proficient
3 PointsEffectively identifies vulnerabilities and proposes viable solutions.
Developing
2 PointsIdentifies some vulnerabilities with limited solution proposals.
Beginning
1 PointsStruggles to identify vulnerabilities or propose viable solutions.
Verification Techniques
Evaluates use of formal verification methods to validate proposed solutions.
Exemplary
4 PointsEmploys advanced verification techniques resulting in thoroughly validated solutions.
Proficient
3 PointsUses appropriate verification methods to confirm solution effectiveness.
Developing
2 PointsVerification approaches are basic with some validation of solutions.
Beginning
1 PointsUtilizes limited verification techniques with minimal solution validation.
Comprehensive Specification and Documentation
Assesses ability to produce a complete, verified specification and document the process.Specification Quality
Measures completeness and accuracy of system specifications for OS memory management.
Exemplary
4 PointsProduces comprehensive and highly accurate specifications, fully verified for reliability.
Proficient
3 PointsCreates complete and accurate specifications with effective verification process.
Developing
2 PointsSpecifications are somewhat complete with partial verification acknowledged.
Beginning
1 PointsProduces incomplete specifications with minimal verification impact.
Process Documentation
Assesses detailed documentation of specification and verification process.
Exemplary
4 PointsDocuments process thoroughly, providing clear insights and reflections.
Proficient
3 PointsProvides detailed documentation with useful insights into verification steps.
Developing
2 PointsDocumentation lacks depth and occasional clarity in process details.
Beginning
1 PointsOffers minimal documentation lacking substantial process details.