Käyttöjärjestelmät käyttävät ajoitusta ja muistinhallintaa resurssien optimointiin. Tässä blogikirjoituksessa tarkastellaan ajoituksen ja tehokkaan muistinhallinnan periaatteita suorittimen käytön maksimoimiseksi.
Henkilökohtaisten tietokoneiden aikakaudella on vaikea löytää henkilöä, joka ei olisi kuullut sanoja "Windows" ja "Linux". Windows ja Linux ovat kaksi tämän hetken suosituimpia käyttöjärjestelmiä. Windows on Microsoftin kehittämä käyttöjärjestelmä, jota käytetään laajasti ympäri maailmaa sen intuitiivisen käyttöliittymän ja laajan ohjelmistoyhteensopivuuden ansiosta. Linux puolestaan on avoimen lähdekoodin käyttöjärjestelmä, joka on kehitetty osana vapaiden ohjelmistojen liikettä, jonka avulla käyttäjät voivat vapaasti muokata ja jakaa lähdekoodia. Tästä syystä Linux on erittäin suosittu kehittäjien ja palvelinympäristöjen keskuudessa.
Vaikka monet ihmiset tietävät olevansa käyttöjärjestelmiä, he eivät tiedä mitä tekevät. Tietenkään ei ole mitään väärää siinä, että ei tiedä, mitä käyttöjärjestelmä tekee, mutta käyttöjärjestelmiä käyttävien laitteiden määrä kasvaa, ei vain tietokoneiden, vaan matkapuhelimien, autojen, digikameroiden ja jopa kodinkoneiden, kuten televisioiden ja jääkaappien, määrä. Insinööriopiskelijana on tärkeää, että sinulla on ainakin pintapuolinen käsitys käyttöjärjestelmistä. Tässä artikkelissa puhumme käyttöjärjestelmien kahdesta tärkeimmästä ominaisuudesta: ajoituksesta ja muistin hallinnasta.
Ajoitus on juuri sitä miltä se kuulostaa: kyky jakaa suorittimen aika käynnissä olevien ohjelmien tai prosessien kesken. Kun käytät tietokonetta, useita prosesseja on käynnissä samanaikaisesti. Niitä voi kuitenkin käsitellä vain yksi prosessori, joten on tärkeää jakaa CPU:n aika tehokkaasti, jotta jokainen prosessi näyttää toimivan sujuvasti ja samanaikaisesti, mikä maksimoi suorittimen käytön tehokkuuden. Käyttämällä esimerkkinä paistetun riisin valmistusta, prosesseja ovat riisin keittäminen, vihannesten pilkkominen ja ainesten viipalointi, ja CPU on kokki. Voisit pestä riisin, kypsentää riisin, odottaa riisin kypsymistä, pilkkoa vihannekset, napata loput ainekset jääkaapista, pilkkoa ja paistaa ne, mutta paljon nopeampaa ja tehokkaampaa olisi leikata kasvikset valmiiksi riisin kypsyessä ja etsiä ja pilkkoa ainekset vihannesten sekoittuessa. Se on kuin moniajon käsite, jossa käsitellään useita tehtäviä samanaikaisesti. Tuntuu niin luonnolliselta, että voimme kuunnella musiikkia tietokoneillamme, kirjoittaa dokumentteja ja keskustella ystävien kanssa pikaviestinnässä samanaikaisesti, mutta tämä on mahdollista vain käyttöjärjestelmän tehokkaan aikataulutuksen ansiosta.
Toinen käyttöjärjestelmän tärkeä ominaisuus on muistinhallinta. Kun prosesseja suoritetaan, jokaiselle prosessille varataan oma muistialue. Tämä on analoginen tapa, jolla jokaiselle kodille annetaan oma asuinalue. Mutta entä jos kotisi olisi naapurisi käytössä? Et pystyisi elämään normaalisti, jos joku tunkeutuisi ilman ennakkoilmoitusta keittiöösi kokkaamaan, käyttämään kylpyhuonettasi tai juhlimaan olohuoneessasi keskellä yötä. Sama pätee prosesseihin. Jos muiden prosessien sallittaisiin käyttää niille osoittamaasi muistia, huomaat, että yössä kirjoittamasi asiakirja on korvattu jollakin, jota et tunnistanut, tai että musiikkisoittimesi soitti tunnistamattomia ääniä musiikin sijaan. Tämän estämiseksi käyttöjärjestelmät varaavat kullekin prosessille sopivan määrän muistia ja tarkkailevat sitten tarkasti jokaista prosessia varmistaakseen, että se käyttää vain sille annettua muistia. Nykyaikaiset käyttöjärjestelmät ottavat käyttöön myös muistin virtualisointiteknologian fyysisen muistin rajoitusten voittamiseksi ja tehokkaamman muistin käytön mahdollistamiseksi. Tämän ansiosta prosessit voivat joustavasti varata ja käyttää niin paljon muistia kuin tarvitsevat, mikä auttaa parantamaan järjestelmän yleistä suorituskykyä.
Nämä ovat käyttöjärjestelmän kaksi tärkeää ominaisuutta. Kuten edellä mainittiin, käyttöjärjestelmät ovat juurtuneet elämäämme niin paljon, että hyvällä on valtava vaikutus markkinoiden määräävään asemaan. Jopa Samsungin kuuluisa Galaxy-sarja ei olisi yhtä menestynyt kuin se on ilman Android-käyttöjärjestelmää. Android on Linux-pohjainen käyttöjärjestelmä, joka on optimoitu mobiililaitteille, kuten älypuhelimille ja tableteille. Sen avulla käyttäjät voivat asentaa vapaasti erilaisia sovelluksia ja luoda yksilöllisen käyttökokemuksen.
Korea ei kuitenkaan ole vielä kehittänyt hyvin tehtyä käyttöjärjestelmää. Tämä johtuu useiden tekijöiden yhdistelmästä, mukaan lukien käyttöjärjestelmän kehittämiseen tarvittavien resurssien ja infrastruktuurin puute. Korean IT-alan kehityksen ja henkilökohtaisen vaurauden ja kunnian vuoksi ei olisi huono idea ryhtyä käyttöjärjestelmien kehittämiseen. Erityisesti tekoälyn ja Internet of Things (IoT) -teknologioiden kehittyessä tulevaisuudessa, tarvitaan uudentyyppisiä käyttöjärjestelmiä tukemaan niitä. Siksi innovatiivisten ja ajan tarpeita vastaavien käyttöjärjestelmien kehittäminen on tärkeä kilpailuetu IT-alalla tulevaisuudessa.