Design and Implementation of Real-Time Operating System
Dounaev, Pavel (2021)
Dounaev, Pavel
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021052611359
https://urn.fi/URN:NBN:fi:amk-2021052611359
Tiivistelmä
Opinnäytetyön tavoitteena oli dokumentoida reaaliaikaisen käyttöjärjestelmän suunnittelu ja toteutus ARM CortexM3prosessorille. Käyttöjärjestelmä suunniteltiin ja toteutettiin asetettujen vaatimuksien mukaan. Toteutetun käyttöjärjestelmän oli mahduttava mikro-ohjaimen rajalliseen Flash muistitilaan, mutta samalla sisältävän riittävästi ominaisuuksia, jotta käyttöjärjestelmä voitaisiin luokitella reaaliaikaiseksi moniajokäyttöjärjestelmäksi. Käyttöjärjestelmän kehittämiseen sisältyi CortexM3-prosessorin käyttöjärjestelmä tuen tutkiminen, jota käytettiin käyttöjärjestelmän ominaisuuksien toteuttamiseen.
Käyttöjärjestelmän kehittäminen oli toteutettu CortexM3prosessoriin pohjautuvalla NXPLPC1549kehityskortilla. Käyttöjärjestelmän pienen koon saavuttamiseksi käyttöjärjestelmä suunniteltiin lisäkerrokseksi mikroohjaimen ohjelmistopinoon. Käyttöjärjestelmän moniajo saavutettiin toteuttamalla mekanismi, joka jakaa sovelluksen useaan pieneen yksikköön, taskiin, joita käyttöjärjestelmä hallitsee ja ajoittaa suoritusta ajoitusalgoritmin mukaan. Ajoitusalgoritmiksi suunniteltiin prioriteettipohjainen roundrobinalgoritmi, joka mahdollisti tärkeimmän taskin suorituksen sovelluksen suorituksen aikana. Noudattamalla muita annettuja vaatimuksia, synkronointi ja taskien välisiä viestintäominaisuuksia toteutettiin semafori, mutex ja postilaatikko primitiiveillä.
Kehitetystä käyttöjärjestelmästä tuli yksinkertainen, mutta pieni ja käytännöllinen. Käyttöjärjestelmistä, käyttöjärjestelmien teoriasta ja toteutuksista kiinnostunut henkilö voi käyttää kehitettyä käyttöjärjestelmää käytännöllisenä esimerkkinä yksinkertaisesta käyttöjärjestelmästä syvempää analysointia ja oppimista varten. Kehitettyä käyttöjärjestelmää voidaan jatkokehittää toteuttamalla puuttuvat vaatimukset ja myös laajentaa lisäominaisuuksilla käyttöjärjestelmän turvallisuuteen ja skaalautuvuuteen. Käyttöjärjestelmän lähde koodi on saatavilla Gitohjelmavarastosta: https://github.com/dounpav/pavOS
Käyttöjärjestelmän kehittäminen oli toteutettu CortexM3prosessoriin pohjautuvalla NXPLPC1549kehityskortilla. Käyttöjärjestelmän pienen koon saavuttamiseksi käyttöjärjestelmä suunniteltiin lisäkerrokseksi mikroohjaimen ohjelmistopinoon. Käyttöjärjestelmän moniajo saavutettiin toteuttamalla mekanismi, joka jakaa sovelluksen useaan pieneen yksikköön, taskiin, joita käyttöjärjestelmä hallitsee ja ajoittaa suoritusta ajoitusalgoritmin mukaan. Ajoitusalgoritmiksi suunniteltiin prioriteettipohjainen roundrobinalgoritmi, joka mahdollisti tärkeimmän taskin suorituksen sovelluksen suorituksen aikana. Noudattamalla muita annettuja vaatimuksia, synkronointi ja taskien välisiä viestintäominaisuuksia toteutettiin semafori, mutex ja postilaatikko primitiiveillä.
Kehitetystä käyttöjärjestelmästä tuli yksinkertainen, mutta pieni ja käytännöllinen. Käyttöjärjestelmistä, käyttöjärjestelmien teoriasta ja toteutuksista kiinnostunut henkilö voi käyttää kehitettyä käyttöjärjestelmää käytännöllisenä esimerkkinä yksinkertaisesta käyttöjärjestelmästä syvempää analysointia ja oppimista varten. Kehitettyä käyttöjärjestelmää voidaan jatkokehittää toteuttamalla puuttuvat vaatimukset ja myös laajentaa lisäominaisuuksilla käyttöjärjestelmän turvallisuuteen ja skaalautuvuuteen. Käyttöjärjestelmän lähde koodi on saatavilla Gitohjelmavarastosta: https://github.com/dounpav/pavOS