FI102220B - Vikaantumistietojen keräys tietokoneyksikön uudelleenkäynnistyksen osa na - Google Patents

Vikaantumistietojen keräys tietokoneyksikön uudelleenkäynnistyksen osa na Download PDF

Info

Publication number
FI102220B
FI102220B FI955186A FI955186A FI102220B FI 102220 B FI102220 B FI 102220B FI 955186 A FI955186 A FI 955186A FI 955186 A FI955186 A FI 955186A FI 102220 B FI102220 B FI 102220B
Authority
FI
Finland
Prior art keywords
computer
data
data structures
memory
restart
Prior art date
Application number
FI955186A
Other languages
English (en)
Swedish (sv)
Other versions
FI955186A0 (fi
FI102220B1 (fi
FI955186A (fi
Inventor
Lauri Tattari
Original Assignee
Nokia Telecommunications Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Telecommunications Oy filed Critical Nokia Telecommunications Oy
Publication of FI955186A0 publication Critical patent/FI955186A0/fi
Priority to FI955186A priority Critical patent/FI102220B1/fi
Priority to PCT/FI1996/000573 priority patent/WO1997016787A2/en
Priority to CN96198321A priority patent/CN1105352C/zh
Priority to CA002236170A priority patent/CA2236170C/en
Priority to US09/051,943 priority patent/US6145095A/en
Priority to EP96934859A priority patent/EP0870232B1/en
Priority to RU98110644/09A priority patent/RU2177636C2/ru
Priority to DE69618007T priority patent/DE69618007T2/de
Priority to BR9611202A priority patent/BR9611202A/pt
Priority to AU73028/96A priority patent/AU714666B2/en
Priority to JP9517089A priority patent/JP2000501210A/ja
Publication of FI955186A publication Critical patent/FI955186A/fi
Application granted granted Critical
Publication of FI102220B publication Critical patent/FI102220B/fi
Publication of FI102220B1 publication Critical patent/FI102220B1/fi

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Description

102220
Vikaantumistietojen keräys tietokoneyksikön uudelleenkäynnistyksen osana
Keksintö liittyy tietokonejärjestelmien vikaantumistietojen keräämiseen. Täsmällisemmin sanottuna keksinnön kohteena on menetelmä prosessia, 5 kuten puhelunvälitystä ohjaavan tietokoneen uudelleenkäynnistykseen johtaneiden ongelmien selvittämiseksi.
Tietokoneiden ja niiden ohjelmien käyttäjille ovat kiusallisen tuttuja sellaiset virhetilanteet, joissa tietokone siirtyy alkutilaan, eli käyttäytyy aivan kuin virta olisi juuri kytketty päälle. Tällöin yleensä menetetään tietokoneen 10 muistissa ollut data. Käyttöjärjestelmä voi antaa lyhyen virheilmoituksen kuten "General Protection Fault”. Tällainen virheilmoitus ei anna käyttäjälle tai tukihenkilölle juuri mitään tietoa siitä mikä meni vikaan ja mitä pitäisi tehdä, ettei tilanne toistuisi. Toista äärimmäisyyttä edustaa erään lähiverkko-ohjelmiston (Novell® Netware) tapa virhetilanteen raportoimiseksi. Kun verkkopalvelimen 15 ohjelmiston suorituksessa tapahtuu virhe, tukihenkilölle annetaan mahdollisuus tallentaa koko palvelimen muisti levykkeille, joita saatetaan tarvita jopa kymmeniä kappaleita. Selvästikään virheeseen johtaneen syyn löytäminen ei ole helppoa, jos tietoa on liian paljon. Lisäksi tunnettujen menetelmien ongelmana on se, että niissä raportointi käyttäjälle tapahtuu ennen tietokoneen uudelleen-20 käynnistystä. Mikäli ongelmatilanne on sekoittanut käyttöjärjestelmän levynkä-sittelyrutiinit, ei virhettä edeltänyttä tilannetta voida tallentaa levylle.
Tietokoneen uudelleenkäynnistyksiä tapahtuu aina silloin tällöin. Selkeyden vuoksi tämän hakemuksen puitteissa "uudelleenkäynnistys" tarkoittaa nimenomaan sitä uudelleenkäynnistystä, jonka aiheuttaneita syitä halutaan tut-25 kia.
On erittäin tärkeää, että ongelmatilanteissa huoltotoimet voidaan suunnata oikealla tavalla oikeisiin kohteisiin. Esimerkiksi PC Format -lehti, elokuu 1995, sivu 27 kertoo tietokoneiden ohjelmistovikojen yhteydessä, että 15.1.1990 ajoittain jopa puolet AT&T:n Yhdysvaltain puhelinverkosta oli poissa 30 käytöstä ja kyseisenä päivänä 70 miljoonaa puhelua jäi yhdistämättä. Virhe jälji-. tettiin AT&T:n keskuksia ohjaavan ohjelmiston huoltotoimenpiteeseen, joka ei sujunut suunnitellulla tavalla.
Kuvio 1 esittää hajautettua tietokonejärjestelmää. Tietokoneista 10 ja 20 ainakin osa, tässä esimerkissä tietokone 10 toimii palvelimena muille tieto-35 koneille 20. Palvelin 10 käsittää levyaseman 11, johon järjestelmän ohjelmisto on tallennettu. Tietokoneet liittyvät toisiinsa yhteydellä 1, joka voi olla lähiverkon kaapeli tai etäyhteys kuten esimerkiksi varattu modeemilinja, ISDN-yhteys, ra- 2 102220 diolinkki tms. Esimerkiksi tietokone 20 käynnistyy sinänsä tunnetulla tavalla siten, että sen tukipiirit 25 kehittävät aloitussignaalin, joka saa keskusyksikön 24 hyppäämään ennaltamäärättyyn osoitteeseen, jossa on alkulatausohjelman sisältävä lukumuisti 22. Alkulatausohjelman suorittaminen keskusyksikössä 24 5 ohjaa esimerkiksi verkkoliitäntää 21 lataamaan yhteyden 1 kautta palvelimelta 10 ensin käyttöjärjestelmän, joka voi sisältää kehittyneempiä latausohjelmia. Suoritusta varten käyttöjärjestelmä ja muut ohjelmat ladataan RAM- eli luku-kirjoitusmuistiin 23, jota tästälähin kutsutaan "keskusmuistiksi". Käyttöjärjestelmän lataamisen jälkeen ladataan sovellusohjelmat, joiden suorittaminen saa 10 tietokoneen 20 suorittamaan varsinaisen tehtävänsä. Vaihtoehtona ohjelmiston lataamiselle yhteyden 1 kautta ohjelmisto voitaisiin ladata levyasemaohjaimen 26 kautta paikallisesta levyasemasta 27, jos tietokoneessa 20 sellainen on. Lisäksi tietokoneeseen 20 voi kuulua tulostin 28.
Kuvio 2 esittää tietokoneen 20 käyttöjärjestelmän keksinnön kannal-15 ta oleellisia osia. Tässä esimerkinomaisessa tapauksessa käyttöjärjestelmä OS (Operating System) käsittää neljä perustoimintoa OS2 - OS5 eli vastaavasti prosessien hallinnan, muistin hallinnan, sanomien välityksen ja prosessien poissulkemisen.
Kuvio 3 esittää esimerkinomaista prosessien ketjua. Täsmällisemmin 20 sanottuna kyseessä on prosessien hallintatietueiden (Process Control Block, PCB) ketju. Ketju voi olla esimerkiksi ajokelpoisten prosessien ketju, tiettyä tapahtumaa opastimessa odottavien prosessien ketju ym. Prosesseihin Pn liittyy yleensä monimutkainen ja dynaaminen tietorakenne. Kuviossa 3 asioita on havainnollistamisen vuoksi yksinkertaistettu siten, että kuhunkin prosessiin Pn 25 liittyvät tietorakenteet on tiivistetty parametrialueeseen PA, joka sisältää mm. tietoa prosessin tilasta ja prosessille varatusta muistialueesta sekä tietoa perheen seuraavasta ja edellisestä prosessista. Kun prosessi päättyy, sen tulisi vapauttaa kaikki varaamansa muisti. Eräs yleinen muistiongelmien syy on se, että prosessi ei vapautakaan kaikkea varaamaansa muistia. Kun prosessi suo-30 rittaa riittävän monta kertaa muistin varauksen vapauttamatta aiemmin varaa-*; maansa muistia, se lopulta täyttää kaiken vapaan muistin, jolloin toiset pro sessit eivät enää voi varata muistia. Eräs vikaantumismekanismi voi myös olla se, että jokin prosessi jää virheellisesti silmukkaan, eikä vastaanota sille lähetettyjä sanomia.
35 Muodollinen kuvaus opastimista ja operaatioista on E. W. Dijkstran artikkelissa "Co-operating Sequential Processes" teoksessa Programming Languages, Genuys, F. (toim.), London Academic Press, 1965.
3 102220
Yllä oleva kuvaus prosesseista on pitkälle yksinkertaistaistettu, mutta se riittää havainnollistamaan ongelmaa ja sen ratkaisua. Jos jokin tietokoneeseen 20 ladattu ohjelma - täsmällisemmin sanottuna ohjelmistoon kuuluva prosessi - sekoaa tai tietokoneessa esiintyy esimerkiksi muistivika, tietokone 5 käynnistetään uudelleen. Tällöin ylläkuvattu ohjelmiston latausproseduuri toistetaan. Ongelmana uudelleenkäynnistykseen johtaneen virheen syitä selvitettäessä on ensiksikin se, että oleellista tietoa on vaikea erottaa epäoleellisesta. Toinen ongelma on se, että ohjelmiston sekoaminen on voinut sekoittaa verk-koliityntää 21 ja/tai levyasemaohjainta 26 ohjaavan ohjelmiston, joten tietoja ei 10 ehkä voida tallentaa mihinkään ennen kuin niiden päälle kirjoitetaan uutta tietoa uudelleenkäynnistyksen yhteydessä.
Keksinnön tavoitteena on yllä olevan johdannon perusteella kehittää menetelmä tietokonejärjestelmien vikaantumistietojen keräämiseksi, jossa menetelmässä esimerkiksi myöhempää analysointia varten varten tallennetaan 15 sellainen tieto, jolla voi olla oleellista merkitystä virheen syytä selvitettäessä, mutta epäoleellinen tieto jätetään tallentamatta. Lisäksi tavoitteena on kehittää menetelmän toteuttava laitteisto.
Keksintö perustuu siihen, että tietokoneen käyttöjärjestelmää täydennetään toiminnalla, joka uudelleenkäynnistyksen yhteydessä kerää talteen 20 sellaista tietoa, jolla voi olla merkitystä vikaantumisen syytä selvitettäessä. Keksinnön mukaisesti tietokoneen muistialueet alustetaan vasta sitten, kun kyseisten muistialueiden sisällöstä on virheen selvittämisen kannalta oleellinen osa tallennettu. Täsmällisemmin sanottuna keksinnön tavoitteet saavutetaan menetelmillä ja laitteistoilla, joille on tunnusomaista se, mitä sanotaan itsenäi-25 sissä patenttivaatimuksissa. Erilaisia tapoja vikaantumistietojen keräämisen tarkentamiseksi esitellään alivaatimuksissa.
Keksinnön mukainen menetelmän ja laitteiston etuna on ensiksikin se, että uudelleenkäynnistykseen liittyviä tietoja voidaan seuloa etukäteen tietokoneella, jolloin epäoleellinen tieto ei tarpeettomasti kuormita ihmisen ja tieto-30 koneen resursseja. Vähäisestä resurssien käytöstä on sekin etu, että tietoja voidaan kerätä jopa osittain rikkinäisellä laitteistolla. Vielä yksi etu on se, että tiedot tallennetaan, kun tietokone on hyvin määritellyssä tilassa, jolloin on käytettävissä sellaiset oheislaitteet ja oheislaitteiden ajurit, joita tietojen tallentamiseksi saatetaan tarvita.
35 Keksintöä selostetaan nyt lähemmin edullisten suoritusmuotojen yh teydessä, viitaten oheisiin piirroksiin, joista:
Kuvio 1 esittää hajautettua tietokonejärjestelmää; 4 102220
Kuvio 2 esittää tietokoneen käyttöjärjestelmän osia;
Kuvio 3 esittää esimerkinomaista prosessien ketjua; ja
Kuvio 4 on vikaantumistietojen kehysohjelman toimintaa havainnollistava vuokaavio.
5 Kuvio 2 esittää tietokoneen 20 käyttöjärjestelmän osia. Keksinnön mukainen vikaantumistietojen keräystoiminta OS1 voidaan sijoittaa käyttöjärjestelmään samoin kuin käyttöjärjestelmän muutkin toiminnot. Vikaantumistietojen keräystoiminta OS1 on näytetty käyttöjärjestelmän ensimmäisenä toimintana kuviossa 2. Tällä sijoituksella on haluttu korostaa sitä, että vikaantumistiedot on 10 syytä kerätä ennen kuin ohjelmisto ladataan esimerkiksi levyasemasta ja tietorakenteet alustetaan uudelleen. Lisäksi kuviosta 2 näkyy, että osa tietokoneen 20 keskusmuistia 23 on varattu talousalueeksi SA (Storage Area), jonka käyttö selostetaan kuvion 3 yhteydessä.
Kuvio 3 esittää esimerkinomaista prosessien ketjua. Keksinnön mu-15 kainen vikaantumistietojen kehysohjelma OS1 saa tiedon ketjun alkupisteestä esimerkiksi ohjelmiston paketointiteknisin keinoin. Samaa tekniikkaa käytetään mm. tekemään mahdolliseksi yleiskäyttöisten kirjastojen käyttö. Yleisenä periaatteena voidaan sanoa, että keksinnön mukainen vikaantumistietojen kehysohjelma OS1 selvittää erilaisten prosessien ja prosessiperheiden parametrit 20 samalla tavoin kuin muukin ohjelmisto OS2 - OS5 selvittää vastaavat parametrit. Alkupisteen perusteella selvitetään prosessin P10 alkupiste P10A. Prosessiin P10 liittyy prosessi P11, johon puolestaan liittyvät prosessit P12 ja P13. Kuviossa 3 on esimerkinomaisesti esitetty myös sellainen tapaus, jossa prosessiin P11 voi liittyä myös prosessi P14. Oletetaan aluksi, että prosessit voivat 25 latautua muistiin dynaamisesti eli mielivaltaisiin osoitteisiin, jolloin tieto siitä, missä muistiosoitteessa prosessi sijaitsee, on esimerkiksi perheen edellisen jäsenen parametrialueella.
Seuraavaksi kuvataan, kuinka keksinnön mukainen vikaantumistietojen kehysohjelma voi selvittää, mikä prosessi on juuttunut silmukkaan. Tällai-30 nen lukkiutuminen voidaan havaita esimerkiksi siten, että prosessille viimeksi lähetetty sanoma säilyy tallessa, kunnes prosessi valmistautuu vastaanottamaan seuraavaa sanomaa. Jos ohjelma juuttuu silmukkaan, jää sanomakin yleensä vapauttamatta. Keksinnön mukainen vikaantumistietojen kehysohjelma OS1 voi havaita tällaisen tilanteen esimerkiksi tutkimalla prosessinohjaus-35 lohkoa PCB parametrialueella PA.
5 102220
Lisäksi joidenkin prosessien jäljiltä vapaa muisti on niin pirstoutunutta, että suurille prosesseille ei riitä yhtenäistä muistialuetta. Tällaiset ongelmat voidaan selvittää käyttöjärjestelmän muistinhallinnan tietorakenteista.
Yllä kuvattujen esimerkinomaisten ongelmien tutkimista auttaa se, 5 että uudelleenkäynnistyksen yhteydessä talletetaan tieto prosessien varaamista muistialueista seuraavasti: (i) luetaan prosessiperheiden listasta PL ensimmäisen prosessiper-heen ensimmäisen jäsenen P10 osoite P10A; (ii) luetaan tämän osoitteen perusteella prosessiperheen ensimmäi- 10 sen prosessin parametrialue PA ja kopioidaan se talousalueelle SA; (iii) toistetaan vaihe (ii) rekursiivisesti kaikille kyseisen prosessin kutsumille prosesseille; (iv) luetaan listasta seuraavan prosessiperheen ensimmäisen jäse- 15 nen osoite ja toistetaan vaiheet (ii) - (iii), kunnes prosessiperhei den lista on kokonaan käsitelty.
Tässä yhteydessä ’’parametrialueella” PA tarkoitetaan kuhunkin prosessiin liittyvää aluetta keskusmuistista 23, jossa säilytetään prosesiin liittyvää, keksinnön kannalta oleellista dataa. Siihen, mitä tällainen oleellinen data on, 20 palataan myöhemmin. "Talletusalue” SA (storage area) on alue, samoin keskusmuistista 23, jonka keksinnön mukainen tiedonkeruuohjelmisto perustaa ja johon prosessien parametrialueet PA kopioidaan uudelleenkäynnistyksen yhteydessä.
Yllä kuvattu menetelmä soveltuu yleiseen tapaukseen, jossa pro-25 sessit voivat latautua mihin muistialueeseen tahansa. Silloin, kun tietyt prosessit latautuvat aina tiettyyn osoitteeseen, niiden parametrialueiden alku- ja loppuosoitteet saadaan suoraan tunnetulla tavalla ohjelmakäännöksen yhteydessä. Näihin osoitteisiin voidaan viitata keksinnön mukaisen analyysiohjelman tapauksessa samalla tavoin kuin näihin osoitteisiin viitataan muutakin ohjeimis-30 toa muodostettaessa. Tässä tapauksessa voidaan käyttää yksinkertaisempaa 4 menetelmää, joka voidaan kuvata seuraavan pseudokoodin muodossa: copy P10.PA to SA.PA1 copy P11 .PA to SA.PA2 35 Tässä ’’Pn.PA” tarkoittaa prosessin Pn parametrialuetta ja vastaa vasti "SA.PAn” sitä aluetta talousalueella SA, johon prosessin Pn parametri-alue kopioidaan. Todelliselle ohjelmointikielle käännettynä yllä oleva pseudo- 6 102220 koodi toteutettaisiin siten, että kopiointia varten lähderekisteriin ladataan P10.PA:n alkuosoite, kohderekisteriin ladataan SA.PA1:n alkuosoite ja kopioinnin tavumäärää osoittavaan rekisteriin ladataan P10.PA:n koko tavuina.
SA.PA2:n alkuosoite saadaan lisäämällä SA.PA1:n alkuosoitteeseen P10.PA:n 5 koko tavuina jne. Vastaavasti minkä tahansa prosessin Pn parametrialue PA kopioidaan talousalueelle SA osoitteeseen, joka saadaan lisäämällä edellisen prosessin talousalueen alkuosoitteeseen SA.PAn-1 edellisen prosessin Pn-1 parametrialueen PA koko.
Yllä on keksinnön havainnollistamisen vuoksi oletettu, että kunkin 10 prosessin parametrialue PA on yhtenäinen muistialue. Jos parametrialue on hajautettu useaan erilliseen alueeseen, on yllä kuvatut vaiheet parametrialueen kopioimiseksi talousalueelle SA toistettava jokaista hajautetun parametrialueen osa-aluetta kohti.
Arvokasta tietoa voidaan saada myös tutkimalla prosessiin liittyviä 15 opastimia. Opastin on odotuspaikan käsittävä laskuri, jolla voidaan toteuttaa prosessien keskinäinen poissulkeminen. Prosesseja käytetään siten, että yleensä vain yksi prosessi pääsee käsittelemään opastimella suojattua aluetta.
Tällaista opastimella suojattua aluetta käsitellään ohjelmallisella rutiinilla, jonka alussa on ns. P-operaatio ja lopussa ns. V-operaatio. P pienentää laskurin ar-20 voa, ja jos se menee liian pieneksi (negatiiviseksi), prosessi liittää itsensä opastimen jonoon. Muussa tapauksessa prosessi jatkaa P-operaation jälkeistä koodiaan. Koodin lopuksi prosessi tekee V-operaation, jossa laskurin arvoa kasvatetaan. Jos se on ollut negatiivinen, odottava prosessi herätetään, ja se puolestaan pääsee suojatulle alueelle.
25 Ongelmana on, että prosessin kaatuessa suojatulla alueella, eli sil loin, kun sillä on jokin opastin hallussaan, kyseisen opastimen jono pysähtyy ilman erikoistoimia. Toisaalta ohjelmassa voi olla vika, eikä se suorita V-operaatiota lainkaan. Näitä ongelmia voidaan ratkoa merkitsemällä parametri-alueelle tieto kaikista prosessin hallusta olevista opastimista.
30 Käytännön sovelluksiin yllä kuvattu menetelmä sellaisenaan tuottaa edelleen liian paljon tietoa, joka on liian huonosti seulottu. Todellisuudessa tietoa on seulottava tarkemmin ennen sen siirtämistä ihmisen analysoitavaksi.
Suuntaa antavana esimerkkinä voidaan pitää tavoitteena, että noin 32 Megatavun keskusmuistista saataisiin vian selvittämisen kannalta oleellinen tieto tiivis-35 tettyä muutamaan tai jopa yhteen luettavaan sivuun. Keskusmuistista on tällöin löydettävä se 0,01 prosenttia, joka on vian selvittämisen kannalta oleellista.
Eräs sopiva tekniikka on se, että vikaantumistietojen keräysohjelma asettaa 7 102220 prosessin varaamalle muistille ennaltamäärätyn kynnysarvon. Vain niiden prosessien parametrialueet talletetaan, joiden varaama muisti ylittää tämän kynnysarvon. Vaihtoehtoisesti vikaantumistietojen kehysohjelma voi käydä läpi prosessiperheiden ketjun ylläkuvatulla tavalla, mutta kahteen kertaan. Ensim-5 mäisellä kerralla vain selvitetään, kuinka paljon muistia kullekin prosessille tai prosessiperheelle on varattu. Toisella kerralla talletetaan talletusalueelle muutaman tai vaikkapa vain yhden eniten muistia varaavan prosessiperheen parametrialueet.
Yllä on yleispätevyyden vuoksi oletettu, että prosessiperheiden lista 10 PL on lineaarinen lista eli ketju, jossa yhtä prosessiperhettä seuraa toinen, mutta vain yksi prosessiperhe (tai listan loppu). Lisäksi on oletettu, että prosessiperheen sisällä prosessit Pn voivat muodostaa puurakenteita. Mikäli todellinen tilanne on yllä kuvattua yksinkertaisempi siten, että prosessiperheen sisällä prosessit muodostavat vain lineaarisia listoja, voidaan puurakenteiden käsittely 15 yksinkertaisuuden vuoksi jättää pois.
Parametrialueiden PA keksinnön kannalta oleellinen sisältö voi esimerkiksi Intel® x86-prosessoreja käytettäessä käsittää mm. seuraavia prosessikohtaisia asioita: prosessin varaamat muistialueet (koko, varausaika, käyttötarkoi-20 tus) prosessille lähetetyt sanomat, joita prosessi ei vielä ole vastaanottanut prosessin virittämät aikavalvonnat prosessin avaamat tiedostot 25 - prosessin varaamat yhteiset resurssit, esimerkiksi yhteisiin opasteisiin tehdyt P-operaatiot pinossa ja data-alueella olevat sovelluskohtaiset muuttujat sekä käyttöjärjestelmän näille alueille tallentamat tiedot.
Vastaavasti kaikille prosesseille yhteisiä tietoja ovat mm: 30 - muistin varaustiedot, varsinkin vapaata muistia koskevat muistinvarauksiin liittyvät opastimet - yleiseen käyttöön tarkoitetut opastimet käyttöjärjestelmän virheloki
Keksinnön mukainen vikaantumistietojen keräysohjelma OS1 voi 35 löytää nämä tietorakenteet muistista ja saada tietoa näistä samalla tavoin kuin muukin ohjelmisto käsittelee samoja tietorakenteita. Lisäksi on edullista liittää vikaantumistietojen keräysohjelmaan mahdollisuus ohjata ohjelman toimintaa 8 102220 pakko-ohjaustietueilla, joilla voidaan pakottaa ohjelma keräämään tietoa tietyiltä muistialueilta. Nämä kerättävät muistialueet voidaan osoittaa joko absoluuttisina osoitteina tai symbolisina nimiöinä (mikäli vastaava linkityslista on tietokoneen muistissa). Vikaa etsivä tukihenkilö voi muodostaa tällaisia pakko-5 ohjaustietueita millä tahansa yksinkertaisella tekstinmuokkausohjelmalla. Nämä tietueet voivat yksinkertaisimmillaan sisältää vain kaksi parametria: alku- ja lop-puosoitteen, joiden välisen alueen sisällön vikaantumistietojen keräysohjelma kopioi talletusalueelle. Lisäksi ohjelma voi kopioida jonkin tunnistetiedon, esimerkiksi alkuosoitteen. Käytännön viat pyrkivät syntymään odottamattomiin 10 paikkoihin. Pakko-ohjaustietueilla voidaan kerätä tietoa sellaisista paikoista, joihin vikaantumistietojen kehysohjelmaa muodostettaessa ei ollut varauduttu.
Kuvio 4 esittää keksinnön mukaisen vikaantumistietojen kehysohjelman OS1 esimerkinomaisen suoritusmuodon mahdollisia toimintavaiheita. Keräysohjelma ladataan muistiin muun ohjelmiston mukana (vaihe SO). Tässä 15 vaiheessa asetetaan seuraavan uudelleenkäynnistyksen jälkeinen hyppy suuntautumaan kehysohjelmaan. Seuraava uudelleenkäynnistys aktivoi kehysohjelman (vaihe S5). Keräysohjelma lukee keskusmuistista 23 pakko-ohjaustietueiden listasta ensimmäisen tietueen (vaihe S10). Jos tällainen tietue on, keräysohjelma käsittelee sen (vaihe S20). Kun vaiheessa S15 todetaan, 20 että pakko-ohjaustietueiden lista on loppu, keräysohjelma etenee vaiheeseen S25 etsimään prosessien tietorakenteita. Vaiheessa S30 tutkitaan onko kaikki tietorakenteet käsitelty. Ellei ole, vaiheessa S35 tutkitaan, onko tietorakenteessa jotakin poikkeavaa. Jos on, vaiheessa S40 tietorakenteen oleellinen osa kopioidaan talletusalueelle SA. Kun vaiheessa S30 todetaan, että tietorakentei-25 den lista on loppu, ohjelmisto etenee vaiheeseen S45 lataamaan muut ohjelmiston osat, joista keksinnön kannalta oleellisen osan muodostavat käsittelyrutiinit oheislaitteiden, kuten levyasemien käsittelemiseksi. Kun oheislaitteiden käsittelyrutiinit on ladattu, vaiheessa S50 talletusalueen SA sisältö kopioidaan tukihenkilön käyttöön. Tukihenkilö voi saada talletusalueen SA sisällön raportti-30 na kirjoittimelle, levytiedostona tai puhelimitse etätyöasemalle.
Joissakin järjestelmissä sekaisin mennyt ohjelma voi sekoittaa keskusmuistin niin täysin, että se sekoittaa myös vikaantumistietojen kehysohjelman. Tällaista riskiä voidaan rajoittaa sijoittamalla vikaantumistietojen keräysohjelma muistiin joka on suojattu ainakin tahatonta päällekirjoitusta vastaan. 35 Suojaus voidaan toteuttaa esimerkiksi sijoittamalla vikaantumistietojen kehysohjelma ROM- tai FLASH-muistiin tai estämällä prosessorin rekistereitä käyttäen kirjoitus siihen muistisegmenttiin, jossa keräysohjelma sijaitsee.
102220 g
Keksintöä havainnollistavat suoritusmuodot on esimerkinomaisesti selostettu Intel® x86-prosessorien yhteydessä. On selvää, että keksintö ei rajoitu tähän, vaan sitä voidaan soveltaa kaikenlaisiin prosessoreihin, jolloin luonnollisesti kerätään sellaista muistinhallinta- ja muuta tietoa, joka liittyy kyseiseen 5 prosessoriperheeseen. Termien käyttö on alalla jonkin verran vaihtelevaa. Tämän hakemuksen puitteissa käytettyä termiä ’’prosessi" saatetaan jossakin muualla kutsua "säikeeksi” (thread), jolloin tässä hakemuksessa käytetty "prosessiperhe” olisi vastaavasti "prosessi”. Keksinnön suojapiirin ei kuitenkaan katsota riippuvan käytetyistä termeistä. Lisäksi alan ammattilaiselle on ilmeistä, 10 että tekniikan kehittyessä keksinnön perusajatus voidaan toteuttaa monin eri tavoin. Keksintö ja sen suoritusmuodot eivät siten rajoitu yllä kuvattuihin esimerkkeihin vaan ne voivat vaihdella patenttivaatimusten puitteissa.

Claims (13)

1. Menetelmä tietokoneen (20) uudelleenkäynnistykseen johtaneiden vikaantumistietojen keräämiseksi, jolloin tietokone (20) käsittää ohjelmiston (OS), johon kuuluu yksi tai useampi prosesseja (Pn), jossa menetelmässä: 5. luetaan tietokoneen keskusmuistista (23) ainakin osa ohjelmiston (OS) tietorakenteita (PA) sen jälkeen, kun tietokoneen (20) uudelleenkäynnistys on aloitettu, mutta ennen kuin uutta tietoa on kirjoitettu siihen osaan keskusmuistia (23), johon kyseiset tietorakenteet (PA) on tallennettu: ja - kopioidaan keskusmuistista (23) luetut tietorakenteet (PA) ennalta 10 määrätylle oheislaitteelle tietorakenteiden (PA) sisällön säilyttämiseksi uudelleenkäynnistyksen yli; tunnettu siitä, että: - uudelleenkäynnistykseen johtanut virhetilanne luokitetaan johonkin ennalta määrättyyn luokkaan; 15. verrataan tietorakenteiden (PA) sisältöä ennalta määrättyihin nor maaliarvoihin; ja - ainakin osa vaiheista suoritetaan vain, mikäli kyseinen tietorakenne (PA) sisältää kyseiseen virhetilanteiden luokkaan liittyvää tietoa ja/tai kyseisen tietorakenteen (PA) sisältö poikkeaa ennalta määrätystä normaaliarvosta.
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että lisäksi: - varataan ennen tietokoneen (20) uudelleenkäynnistystä ennalta määrätty talletusalue (SA) tietokoneen keskusmuistista (23) vikaantumistietojen keräämistä varten; ja 25. kopioidaan uudelleenkäynnistyksen jälkeen tietorakenteet (PA) en nalta määrätylle talousalueelle (SA) ennen niiden kopioimista oheislaitteelle (27, 28).
3. Patenttivaatimuksen 2 mukainen menetelmä, tunnettu siitä, että virhetilanteiden luokat käsittävät ainakin yhden seuraavista luokista: muis- 30 tin loppuminen, prosessin juuttuminen silmukkaan, prosessille sallitun muistialueen ylitys ja määrittelemätön käsky.
4. Patenttivaatimuksen 3 mukainen menetelmä, tunnettu siitä, että virhetilanteen kuuluessa luokkaan "muistin loppuminen”: - määritetään yksi tai korkeintaan muutama ennen uudelleenkäyn- 35 nistystä eniten keskusmuistia (23) varannut prosessi (Pn); ja 11 102220 - tietorakenteen (PA) kopioiminen on vasteellinen sille, että kyseinen tietorakenne (PA) sisältää tietoa, joka liittyy korkeintaan muutamaan eniten keskusmuistia varanneeseen prosessiin (Pn).
5. Patenttivaatimuksen 3 mukainen menetelmä, tunnettu siitä, 5 että virhetilanteen kuuluessa luokkaan ’’prosessin juuttuminen silmukkaan”: - määritetään, mille prosesseille (Pn) on lähetetty sanomia, joita prosessi (Pn) ei ole vapauttanut; ja - tietorakenteen (PA) kopioiminen on vasteellinen sille, että kyseinen tietorakenne (PA) sisältää tietoa, joka liittyy prosessiin (Pn), joka ei ole vapaut- 10 tanut sille lähetettyä sanomaa.
6. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, tunnettu siitä, että lisäksi: - luetaan joukko tietorakenteita (PA) osoittavia pakko-ohjaustietueita; ja 15. kopioidaan pakko-ohjaustietueiden osoittamat tietorakenteet (PA) oheislaitteelle (27, 28).
7. Tietokone (20), joka käsittää: - keskusyksikön (24), ohjelmiston (OS), keskusmuistin (23), sekä oheislaitteita (21, 26), joista ainakin yhden oheislaitteen kautta ohjelmisto (OS) 20 ladataan keskusmuistiin (23), sekä - vikaantumistietojen keräysohjelman (OS1) vikaantumistietojen keräämiseksi uudelleenkäynnistyksen yhteydessä ja ainakin osan ohjelmiston '· tietorakenteita (PA) lukemiseksi keskusmuistista (23) sen jälkeen, kun uudel leenkäynnistys on aloitettu, mutta ennen kuin uutta tietoa on kirjoitettu siihen 25 osaan keskusmuistista (23), johon kyseiset tietorakenteet (PA) on tallennettu; tunnettu siitä, että vikaantumistietojen keräysohjelma (OS1) käsittää toiminnot: - uudelleenkäynnistykseen johtaneen virhetilanteen luokittamiseksi *. johonkin ennalta määrättyyn luokkaan; 30. tietorakenteiden (PA) sisällön vertaamiseksi ennalta määrättyihin normaaliarvoihin; ja - ainakin joidenkin toimintojen rajoittamiseksi tilanteisiin, joissa kyseinen tietorakenne (PA) sisältää kyseiseen virhetilanteiden luokkaan liittyvää tietoa ja/tai kyseisen tietorakenteen (PA) sisältö poikkeaa ennalta määrätystä 35 normaaliarvosta. 12 102220
8. Patenttivaatimuksen 7 mukainen tietokone, tunnettu siitä, että vikaantumistietojen keräysohjelmaa (OS1) suorittaessaan tietokone (20) lisäksi kopioi tietorakenteet (PA) ennalta määrätylle talletusalueelle (SA) ennen niiden kopioimista oheislaitteelle (27, 28). j
9. Patenttivaatimuksen 7 tai 8 mukainen tietokone, tunnettu sii tä, että tietokone (20) kopioi tietorakenteet kiintolevylle (27).
10. Patenttivaatimuksen 7 tai 8 mukainen tietokone, tunnettu siitä, että tietokone (20) kopioi tietorakenteet yhteyskaapelin (1) kautta palvelimelle (10).
10 102220
11. Patenttivaatimuksen 7 tai 8 mukainen tietokone, tunnettu siitä, että tietokone (20) kopioi tietorakenteet tulostimelle (28).
12. Jonkin patenttivaatimuksen 7-11 mukainen tietokone, tunnettu siitä, että vikaantumistietojen kehysohjelma (OS1) sijaitsee kirjoitukselta suojatussa muistissa.
« , 13 102220
FI955186A 1995-10-30 1995-10-30 Vikaantumistietojen keräys tietokoneyksikön uudelleenkäynnistyksen osana FI102220B1 (fi)

Priority Applications (11)

Application Number Priority Date Filing Date Title
FI955186A FI102220B1 (fi) 1995-10-30 1995-10-30 Vikaantumistietojen keräys tietokoneyksikön uudelleenkäynnistyksen osana
RU98110644/09A RU2177636C2 (ru) 1995-10-30 1996-10-29 Сбор данных об отказах как часть перезапуска компьютерного устройства
BR9611202A BR9611202A (pt) 1995-10-30 1996-10-29 Processo para coletar dados falhos que resultaram em um reinício de um computador e respectivo computador
CA002236170A CA2236170C (en) 1995-10-30 1996-10-29 Fault data collection as part of computer unit restart
US09/051,943 US6145095A (en) 1995-10-30 1996-10-29 Fault data collection as part of computer unit restart
EP96934859A EP0870232B1 (en) 1995-10-30 1996-10-29 Fault data collection as part of computer unit restart
PCT/FI1996/000573 WO1997016787A2 (en) 1995-10-30 1996-10-29 Fault data collection as part of computer unit restart
DE69618007T DE69618007T2 (de) 1995-10-30 1996-10-29 Fehlerdatenerfassung beim wiederanlauf eines rechners
CN96198321A CN1105352C (zh) 1995-10-30 1996-10-29 收集导致计算机重新启动的故障数据的方法以及计算机
AU73028/96A AU714666B2 (en) 1995-10-30 1996-10-29 Fault data collection as part of computer unit restart
JP9517089A JP2000501210A (ja) 1995-10-30 1996-10-29 コンピュータユニットの再スタートの一部分としての欠陥データ収集

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI955186A FI102220B1 (fi) 1995-10-30 1995-10-30 Vikaantumistietojen keräys tietokoneyksikön uudelleenkäynnistyksen osana
FI955186 1995-10-30

Publications (4)

Publication Number Publication Date
FI955186A0 FI955186A0 (fi) 1995-10-30
FI955186A FI955186A (fi) 1997-05-01
FI102220B true FI102220B (fi) 1998-10-30
FI102220B1 FI102220B1 (fi) 1998-10-30

Family

ID=8544283

Family Applications (1)

Application Number Title Priority Date Filing Date
FI955186A FI102220B1 (fi) 1995-10-30 1995-10-30 Vikaantumistietojen keräys tietokoneyksikön uudelleenkäynnistyksen osana

Country Status (11)

Country Link
US (1) US6145095A (fi)
EP (1) EP0870232B1 (fi)
JP (1) JP2000501210A (fi)
CN (1) CN1105352C (fi)
AU (1) AU714666B2 (fi)
BR (1) BR9611202A (fi)
CA (1) CA2236170C (fi)
DE (1) DE69618007T2 (fi)
FI (1) FI102220B1 (fi)
RU (1) RU2177636C2 (fi)
WO (1) WO1997016787A2 (fi)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000178209A (ja) * 1998-12-15 2000-06-27 Mitsubishi Chemicals Corp 分子設計装置及び方法並びに情報記憶媒体
JP2000267872A (ja) * 1999-03-17 2000-09-29 Fujitsu Ltd 2重化システムにおける再開処理方式
US6345331B1 (en) * 1999-04-20 2002-02-05 International Business Machines Corporation Device adapter being reintegrated with plurality of device adapters of network, or reestablishing permissions and resubmitting I/O requests depending on determined device state after failure
US6779132B2 (en) * 2001-08-31 2004-08-17 Bull Hn Information Systems Inc. Preserving dump capability after a fault-on-fault or related type failure in a fault tolerant computer system
DE10231653A1 (de) * 2002-07-12 2004-02-05 Infineon Technologies Ag Verfahren zum Einrichten einer programmgesteuerten Schaltungsanordnung und Schaltungsanordnung zur Durchführung des Verfahrens
US7181574B1 (en) * 2003-01-30 2007-02-20 Veritas Operating Corporation Server cluster using informed prefetching
KR100529330B1 (ko) * 2003-07-02 2005-11-17 삼성전자주식회사 에러 복구 가능한 인쇄 방법 및 장치와 컴퓨터 프로그램을저장하는 컴퓨터로 읽을 수 있는 기록 매체
US20050096924A1 (en) * 2003-10-30 2005-05-05 Enis James H. Solution network knowledge management system
DE10352172A1 (de) 2003-11-05 2005-06-09 Robert Bosch Gmbh Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen
US6988476B2 (en) * 2004-03-11 2006-01-24 Kold Ban International, Ltd. Vehicle with switched supplemental energy storage system for engine cranking
CN100361554C (zh) * 2004-10-20 2008-01-09 华为技术有限公司 一种无线通信系统中记录功放工作状态信息的方法
JP4528144B2 (ja) * 2005-01-26 2010-08-18 富士通株式会社 メモリダンププログラムのブート方法、機構及びプログラム
US7151643B2 (en) * 2005-04-22 2006-12-19 Kabushiki Kaisha Toshiba Apparatus and method for protecting a disk drive in a hardcopy device
US20120173713A1 (en) * 2010-12-30 2012-07-05 Brocade Communication Systems, Inc. Resources monitoring and recovery

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4381540A (en) * 1978-10-23 1983-04-26 International Business Machines Corporation Asynchronous channel error mechanism
JPS59123058A (ja) * 1982-12-29 1984-07-16 Fujitsu Ltd マシンチエツク処理方式
JPH07117863B2 (ja) * 1987-06-26 1995-12-18 株式会社日立製作所 オンラインシステムの再立上げ方式
JPH02294753A (ja) * 1989-05-09 1990-12-05 Fujitsu Ltd 入出力処理装置の初期化方式
US5056091A (en) * 1990-03-15 1991-10-08 Hewlett-Packard Company Method for handling errors detected in a computer system
US5410545A (en) * 1992-07-28 1995-04-25 Digital Equipment Corporation Long-term storage of controller performance
CA2106280C (en) * 1992-09-30 2000-01-18 Yennun Huang Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance

Also Published As

Publication number Publication date
DE69618007T2 (de) 2002-06-13
CA2236170A1 (en) 1997-05-09
FI955186A0 (fi) 1995-10-30
CN1202256A (zh) 1998-12-16
CN1105352C (zh) 2003-04-09
BR9611202A (pt) 1999-03-30
WO1997016787A2 (en) 1997-05-09
FI102220B1 (fi) 1998-10-30
JP2000501210A (ja) 2000-02-02
RU2177636C2 (ru) 2001-12-27
AU714666B2 (en) 2000-01-06
CA2236170C (en) 2006-02-14
WO1997016787A3 (en) 1997-07-03
EP0870232B1 (en) 2001-12-12
AU7302896A (en) 1997-05-22
FI955186A (fi) 1997-05-01
EP0870232A2 (en) 1998-10-14
US6145095A (en) 2000-11-07
DE69618007D1 (de) 2002-01-24

Similar Documents

Publication Publication Date Title
FI102220B (fi) Vikaantumistietojen keräys tietokoneyksikön uudelleenkäynnistyksen osa na
US6269442B1 (en) Apparatus and method for on-line replacement of a running program code and data using checkpoints
US6314567B1 (en) Apparatus and method for transferring state data when performing on-line replacement of a running program code and data
ITTO991010A1 (it) Procedimento ed apparecchio per il ripristino di una unita' a disco rigido di un sistema di elaboratore.
US20030233493A1 (en) Firmware installation methods and apparatus
CN1500243A (zh) 使用可移动存储器收集和恢复用户环境数据
CN1499363A (zh) 在调试异构体系结构中的集成可执行程序时设置断点的方法和设备
CN1508679A (zh) 被管理的文件系统过滤器模型和构造
JP2010086181A (ja) 仮想計算機システム及びその管理方法、プログラム並びに記録媒体
KR20000052371A (ko) 저장 디바이스에서 스택과 관련된 커랩션을 검출하기 위한장치 및 방법
CN104216771A (zh) 软件程序的重启方法及装置
US20040172513A1 (en) System and method for detecting memory management programming errors
US7246348B1 (en) Method and apparatus for using print jobs for downloading and executing printer controller code
AU633775B2 (en) A method of operating a data processing system
WO2005069142A1 (en) Information-processing method and apparatus
CN100472987C (zh) 通信系统程序故障检测方法
Cisco Creating Core Dumps
Cisco Creating Core Dumps
Cisco Creating Core Dumps
Cisco Creating Core Dumps
Cisco Creating Core Dumps
Cisco Creating Core Dumps
Cisco Creating Core Dumps
Cisco Creating Core Dumps
Cisco Creating Core Dumps

Legal Events

Date Code Title Description
MA Patent expired