LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

In questo articolo vorrei parlare di che tipo di programmi applicativi sono, nonché di quali problemi applicativi possono essere risolti con il loro aiuto (ad esempio, un esempio di un semplice database) e quale ruolo giocano per l'utente finale di un personal computer. Prima di tutto, vorrei sottolineare che i computer possono elaborare qualsiasi dato che l'utente gli invia. Ma affinché questi dati siano riconosciuti e compresi correttamente dalla macchina, è necessario comporre un programma speciale in un linguaggio che comprende, o, più semplicemente, una serie di istruzioni sequenziali per eseguire determinate azioni.

Tipi di programmi applicativi

I programmi applicativi sono tali programmi, il cui scopo è finalizzato a risolvere alcuni problemi e interagire direttamente con l'utente. I programmi per computer sono necessari per automatizzare qualsiasi processo, archiviazione ed elaborazione dei dati, modellazione, progettazione, ecc. processi di elaborazione complessi. I programmi sono generalmente divisi in due classi: programmi di sistema e programmi applicativi. I primi vengono utilizzati principalmente per elaborare le informazioni in arrivo da alcune apparecchiature: una scheda di rete, una scheda video, apparecchiature collegate, ad es. si tratta di programmi che interagiscono con hardware o dispositivi esterni. Ne parleremo nei seguenti articoli. Ma riguardo al secondo programma applicato, parliamo più in dettaglio.

I programmi applicativi sono progettati per interagire con l'utente finale, ad es. l'utente, per così dire, interagisce con se stesso, ma solo attraverso il programma, inserisce alcuni dati in ingresso e riceve in uscita un certo risultato dei dati elaborati. Questa è una sorta di decisione per un certo compito applicato, ad esempio, si tratta della scansione delle immagini e della loro successiva elaborazione o della ricerca dei file desiderati. L'uso di programmi applicativi può essere osservato in quasi tutti gli ambiti dell'attività umana, sia che si tratti di contabilità presso un'azienda o di creazione di immagini grafiche, disegni, ecc. Inoltre, l'uso di programmi applicativi è presente in sistemi molto importanti come i sistemi di gestione di database. Questo è molto importante nelle grandi aziende in cui lavora un gran numero di utenti e che hanno davvero bisogno di archiviare e utilizzare grandi quantità di informazioni.

Tipi ed esempi di programmi applicativi

I programmi applicativi sono:

  • Editor di testo. Progettato per creare e modificare testo senza decorazioni;
  • Elaboratori di testi (MS Word). Editor di testo più avanzati che ti consentono di modificare il testo con il design, cambiare i caratteri e le sue dimensioni, inserire file grafici, tabelle, ecc. per un design del testo più presentabile;
  • Tavoli elettronici (MS Excell). Utilizzato principalmente per elaborare i dati contenuti in queste tabelle. Attività applicate il più delle volte vengono eseguiti per la memorizzazione delle credenziali con la loro successiva analisi;
  • Editor di grafica raster e vettoriale (Photoshop, Corel), "visualizzatori". L'utilizzo di programmi applicativi di questo tipo consente di creare, modificare e visualizzare immagini grafiche;
  • Lettori audio video, editor (WinAmp). Consente di visualizzare video, ascoltare musica, creare composizioni musicali;
  • Sistemi di gestione del database (ad esempio - MSQL). Tali programmi vengono utilizzati per lavorare con i database. Ad esempio, un programma di contabilità clienti è un semplice database in cui memorizzare le informazioni sui clienti, i loro dettagli di contatto, ecc. È possibile eseguire operazioni di ricerca, eliminazione e aggiunta di record al database;
  • Traduttori o dizionari elettronici. Tali programmi applicativi consentono di tradurre facilmente il testo in diverse lingue straniere senza studiarle direttamente;
  • Giochi per computer. Utilizzato per l'intrattenimento o per lo sviluppo in modo giocoso.

Un esempio di un'applicazione è, ad esempio, un programma di conteggio dei repost. È difficile elencare tutti i tipi di programmi applicativi, ma abbiamo cercato di evidenziare i principali programmi applicativi.

La classe di computer più numerosa sono i programmi applicativi.

Software applicativo è progettato per garantire l'uso della tecnologia informatica in vari campi dell'attività umana.

Programmi applicativi - programmi progettati per risolvere problemi specifici dell'utente.

Una delle possibili opzioni di classificazione.

Classificazione del software applicativo in base allo scopo

Editor di testo - un programma progettato solo per visualizzare, inserire e modificare il testo.

Elaboratore di testi - un programma che offre la possibilità di inserire, modificare e formattare testo, nonché di inserire oggetti non di testo in un documento di testo (grafico, multimediale, ecc.).

Tutti gli editor di testo salvano il testo "pulito" nel file e grazie a questo compatibile insieme.

Diversi elaboratori di testi scrivono le informazioni di formattazione nel file in modo diverso e quindi incompatibile insieme.

I componenti principali di un word processor:

  • Set di caratteri.
  • Controllo ortografico.
  • Anteprima delle pagine stampate.
  • Combinazione di documenti, più finestre.
  • Formattazione automatica e trasferimento automatico.
  • Strumenti standard.
  • Editor di fogli di calcolo e calcolatrice.
  • Inserimento di oggetti grafici.

Esempi: MS Word, Write, WordPerfect, Ami Pro, MultiEdit, Lexicon, Refis

Sistemi di pubblicazione - necessario per la preparazione di documenti di qualità tipografica, layout di computer (combinando testo e grafica in un libro, rivista, brochure o giornale).

Esempi: Corel Ventura, QuarkXPress, Adobe PageMaker, MS Publisher, FrameMaker

Informazioni grafiche - informazioni o dati presentati sotto forma di diagrammi, schizzi, immagini, grafici, diagrammi, simboli.

Editor grafico - un programma per creare, modificare, visualizzare immagini grafiche.

I componenti principali dell'editor grafico:

  • Set di caratteri, lavora con il testo.
  • Strumenti standard.
  • Biblioteca di immagini.
  • Combinazione di immagini.
  • Effetti speciali.

Distingua tutto tre tipi di computer grafica... esso grafica raster, grafica vettoriale e grafica frattale... Differiscono nei principi di formazione dell'immagine quando vengono visualizzati sullo schermo di un monitor o quando vengono stampati su carta.

La grafica raster viene utilizzata nello sviluppo di pubblicazioni elettroniche (multimediali) e stampate.

Le illustrazioni bitmap vengono raramente create a mano utilizzando programmi per computer. Molto spesso, le illustrazioni preparate dall'artista su carta o fotografie vengono scansionate per questo scopo. Recentemente, le fotocamere digitali e le videocamere sono state ampiamente utilizzate per inserire immagini raster in un computer.

La grafica frattale viene utilizzata raramente per creare documenti stampati o elettronici, ma viene spesso utilizzata nei programmi di intrattenimento.

Esempi: Paint, PaintBrush, CorelDraw, MS PhotoEditor, Adobe PhotoShop, 3D MAX Studio

DBMS (sistema di gestione del database) - progettato per automatizzare le procedure per la creazione, l'archiviazione e il recupero dei dati elettronici (elaborazione di array di informazioni).

Esempi: dBase, Paradox, MS Access, Oracle, FoxPro

Sistemi integrati ci sono due tipi

  • Pacchetti applicativi tradizionali (completamente collegati) (PPP).
  • Pacchetti applicativi con integrazione relativa agli oggetti

RFP tradizionale

Il pacchetto software integrato è un pacchetto autonomo multifunzionale in cui le funzioni e le capacità di vari pacchetti specializzati (orientati ai problemi) sono combinate in un unico insieme. Questi programmi integrano le funzioni dell'editor di testo, DBMS e processore di fogli di calcolo. In generale, il costo di un tale pacchetto è molto inferiore al costo totale di pacchetti specializzati simili.

Il pacchetto fornisce la comunicazione tra i dati, tuttavia, restringe le capacità di ogni componente rispetto a un pacchetto specializzato simile.

Una situazione tipica è quando i dati ottenuti dal database devono essere elaborati utilizzando un processore di fogli di calcolo, presentati graficamente e quindi inseriti nel testo. Per eseguire questo tipo di lavoro, ci sono i cosiddetti. pacchetti integrati: software che combina separatamente le capacità di editor di testo, sistemi grafici, fogli di calcolo, database e altri software. Naturalmente, questa combinazione di possibilità si ottiene attraverso un compromesso. Alcune funzionalità sono limitate o non completamente implementate nei pacchetti integrati. Ciò riguarda, prima di tutto, la ricchezza di comandi per l'elaborazione del database e del foglio di calcolo, la loro dimensione, i macro linguaggi. Tuttavia, i vantaggi di un'unica interfaccia in una suite software integrata sono innegabili.

I pacchetti noti sono Open Access da Open Access, FrameWork da Ashton-Tate, Lotus 1-2-3 e Symphony da Lotus Development Corporation, Lotus Works.

RFP con integrazione relativa agli oggetti

Si tratta di una combinazione di pacchetti specializzati all'interno di un'unica base di risorse, che garantisce l'interazione delle applicazioni (programmi di pacchetto) a livello di oggetto e un singolo passaggio centrale semplificato tra i programmi.

L'integrazione presuppone l'uniformità dei componenti del complesso in termini di percezione e modalità di lavoro con essi. La coerenza delle interfacce è implementata sulla base di icone e menu uniformi, finestre di dialogo, ecc. In definitiva, ciò contribuisce a un aumento della produttività del lavoro e a una riduzione del periodo di sviluppo.

La particolarità di questo tipo di integrazione è l'utilizzo di risorse condivise. Tipi di condivisione delle risorse:

  • utilizzo di utilità comuni a tutti i programmi del complesso (correttore ortografico);
  • l'uso di oggetti che possono essere condivisi da più programmi;

Quando si tratta di condividere oggetti tra più applicazioni, ci sono due standard principali:

  • layout dinamico e incorporamento di oggetti OLE di collegamento e incorporamento di oggetti di Microsoft;
  • OpenDoc (documento aperto) di Apple, Boriartd, IBM, Novell e WordPerfect.

Il meccanismo di disposizione dinamica degli oggetti consente all'utente di inserire le informazioni create da un'applicazione in un documento generato da un'altra. In questo caso, l'utente può modificare le informazioni nel nuovo documento tramite il programma con cui è stato creato questo oggetto.

Inoltre, questo meccanismo consente di trasferire oggetti OLE dalla finestra di un'applicazione alla finestra di un'altra.

OpenDoc è un sistema orientato agli oggetti basato su standard aperti delle aziende partecipanti. Il modello a oggetti è il DSOM (Distributed System Object Model) sviluppato da IBM per OS / 2.

  • implementazione di un metodo semplice per passare da un'applicazione all'altra;
  • disponibilità di strumenti per automatizzare il lavoro con l'applicazione (linguaggio macro).

Esempi: Borland Office per Windows, Lotus SmartSute per Windows, MS Office.

Sistema esperto - un sistema di intelligenza artificiale costruito sulla base di una profonda conoscenza specialistica di una determinata area ristretta (ottenuta da esperti - specialisti in quest'area). Gli ES sono progettati per risolvere problemi con incertezza e dati iniziali incompleti che richiedono conoscenze specialistiche per la loro soluzione. Inoltre, questi sistemi devono essere in grado di spiegare il loro comportamento e la loro decisione. La loro caratteristica distintiva è la capacità di accumulare conoscenza ed esperienza di specialisti qualificati (esperti) in qualsiasi campo. Utilizzando questa conoscenza, gli utenti ES che non hanno le qualifiche necessarie possono risolvere i loro problemi con la stessa efficacia degli esperti. Questo effetto si ottiene grazie al fatto che il sistema nel suo lavoro riproduce approssimativamente la stessa catena di ragionamento di un esperto umano.

La differenza fondamentale tra i sistemi esperti e altri programmi è la loro adattabilità, ad es. variabilità nel processo di autoapprendimento.

È consuetudine distinguere tre moduli principali in ES: modulo knowledge base, modulo inferenza, interfaccia utente.

I sistemi esperti sono utilizzati in varie aree dell'attività umana: scienza (classificazione di animali e piante per specie, analisi chimica), in medicina (diagnosi, analisi di elettrocardiogrammi, determinazione dei metodi di trattamento), in tecnologia (risoluzione dei problemi in dispositivi tecnici, monitoraggio del volo spaziale navi e satelliti), nell'esplorazione geologica, in economia, in scienze politiche e sociologia, scienze forensi, linguistica e molti altri. Esistono sia ES altamente specializzati che "shell", utilizzando i quali, senza essere un programmatore, è possibile creare il proprio ES.

Ipertesto È una forma di organizzazione del materiale testuale non in una sequenza lineare, ma sotto forma di indicazioni di possibili transizioni (collegamenti), collegamenti tra i suoi singoli frammenti. Nei sistemi ipertestuali, le informazioni assomigliano al testo di un'enciclopedia e l'accesso a qualsiasi frammento di testo selezionato viene effettuato arbitrariamente per riferimento. L'organizzazione delle informazioni in forma ipertestuale viene utilizzata per creare manuali di riferimento, dizionari, guide contestuali nei programmi applicativi.

Sistemi multimediali - programmi che forniscono interazione di effetti visivi e audio sotto il controllo di software interattivo.

AWP - una postazione di lavoro automatizzata.

ASNI - sistemi automatizzati per la ricerca scientifica.

sindrome coronarica acuta - sistema di controllo automatizzato.

Applicazioni utente creato dall'utente utilizzando gli strumenti di programmazione a sua disposizione come parte di un particolare ambiente informatico. In questo caso, la creazione e il debug dei programmi vengono eseguiti da ciascun utente individualmente, in conformità con le regole e gli accordi del PPP o del sistema operativo in cui vengono applicati.

La via d'uscita in questi casi è usare il cosiddetto ambienti software applicati.Uno dei componenti che formano l'ambiente di programmazione dell'applicazione è un insieme di funzioni API che il sistema operativo fornisce alle sue applicazioni. Per ridurre il tempo impiegato per eseguire programmi di altre persone, gli ambienti applicativi imitano le chiamate alle funzioni di libreria.

L'efficacia di questo approccio deriva dal fatto che la maggior parte dei programmi oggi viene eseguita su interfacce utente grafiche (GUI) come Windows, Mac o UNIX Motif, con le applicazioni che trascorrono la maggior parte del loro tempo eseguendo alcune azioni ben prevedibili. Effettuano continuamente chiamate alle librerie GUI per la manipolazione delle finestre e altre attività correlate alla GUI. Oggi, nei programmi tipici, il 60-80% del tempo viene speso per eseguire funzioni GUI e altre chiamate alla libreria del sistema operativo. È questa proprietà delle applicazioni che consente agli ambienti applicativi di compensare la grande quantità di tempo speso per emulare un programma per comando. Un ambiente applicativo software progettato con cura contiene librerie che imitano le librerie GUI interne, ma scritte in codice "nativo" e questo accelera notevolmente l'esecuzione di programmi con API di un altro sistema operativo. Questo approccio viene talvolta definito traduzione per distinguerlo dal processo più lento di emulazione del codice un'istruzione alla volta.

Ad esempio, per un programma Windows in esecuzione su un Macintosh, l'interpretazione dei comandi da un processore Intel 80x86 può essere molto lenta. Ma quando viene chiamata una funzione GUI di apertura della finestra, un modulo del sistema operativo che implementa l'ambiente dell'applicazione Windows può intercettare questa chiamata e reindirizzarla alla routine di apertura della finestra che viene ricompilata per il processore Motorola 680x0. Di conseguenza, in tali parti del codice, la velocità del programma può raggiungere (e possibilmente superare) la velocità di lavoro sul suo processore "nativo".

Affinché un programma scritto per un sistema operativo venga eseguito su un altro sistema operativo, non è sufficiente solo garantire la compatibilità API. I concetti alla base dei diversi sistemi operativi possono entrare in conflitto tra loro. Ad esempio, in un sistema operativo, un'applicazione può essere autorizzata a controllare direttamente i dispositivi I / O, in un altro queste azioni sono prerogativa del sistema operativo. Ogni sistema operativo ha i propri meccanismi di protezione delle risorse, i propri algoritmi di gestione degli errori e delle eccezioni, una struttura di processo e uno schema di gestione della memoria specifici, la propria semantica di accesso ai file e un'interfaccia utente grafica. Per garantire la compatibilità, è necessario organizzare la coesistenza priva di conflitti all'interno di un sistema operativo tra diversi modi di gestire le risorse del computer.

3. 7. 3. Metodi di implementazione degli ambienti software applicati

La creazione di un ambiente applicativo a tutti gli effetti, pienamente compatibile con l'ambiente di un altro sistema operativo, è un'attività piuttosto complessa, strettamente correlata alla struttura del sistema operativo. Esistono varie opzioni per la creazione di più ambienti applicativi, che differiscono sia per le caratteristiche delle soluzioni architettoniche che per le funzionalità che forniscono diversi gradi di portabilità dell'applicazione.

In molte versioni di UNIX, il traduttore dell'ambiente dell'applicazione è implementato come una normale applicazione. Nei sistemi operativi costruiti utilizzando il concetto di microkernel, come Windows NT, gli ambienti applicativi vengono eseguiti come server in modalità utente. E in OS / 2, con la sua architettura più semplice, gli strumenti per organizzare gli ambienti applicativi sono integrati in profondità nel sistema operativo.

Una delle opzioni più ovvie per l'implementazione di più ambienti applicativi si basa su una struttura a strati del sistema operativo standard. Nella fig. 3. 8 il sistema operativo OS1 supporta, oltre alle sue applicazioni "native", le applicazioni del sistema operativo OS2. Per fare ciò, contiene una speciale applicazione - un ambiente software applicativo che traduce l'interfaccia del sistema operativo "estraneo" - API OS2 nell'interfaccia del suo sistema operativo "nativo" - API OS1.

Figura: 3. 8. Ambiente del software applicativo che traduce le chiamate di sistema

In un'altra implementazione di più ambienti applicativi, il sistema operativo dispone di più interfacce di programmazione delle applicazioni peer. Nell'esempio mostrato in Fig. 3. Ad esempio, il sistema operativo supporta applicazioni scritte per OS1, OS2 e OS3. Per fare ciò, le interfacce di programmazione dell'applicazione di tutti questi sistemi operativi si trovano direttamente nello spazio del kernel di sistema: API OS1, API OS2 e API OS3.

Figura: 3. 9. Implementazione dell'interoperabilità basata su più API peer

In questa versione, le funzioni a livello di API si riferiscono alle funzioni del livello di sistema operativo sottostante, che deve supportare tutti e tre gli ambienti applicativi generalmente incompatibili. Diversi sistemi operativi gestiscono l'ora di sistema in modi diversi, utilizzano un formato diverso dell'ora del giorno, condividono il tempo del processore in base ai propri algoritmi, ecc. Le funzioni di ciascuna API sono implementate dal kernel tenendo conto delle specifiche del sistema operativo corrispondente, anche se hanno uno scopo simile.

Un altro modo per creare più ambienti applicativi è basato su un approccio microkernel. Allo stesso tempo, è molto importante separare i meccanismi di base del sistema operativo comuni a tutti gli ambienti applicativi dalle funzioni di alto livello specifiche di ciascuno degli ambienti applicativi che risolvono problemi strategici.

Secondo l'architettura del microkernel, tutte le funzioni del sistema operativo sono implementate dal microkernel e dai server in modalità utente. È importante che ogni ambiente dell'applicazione sia progettato come un server in modalità utente separato e non includa meccanismi di base (Fig. 3. 10). Le applicazioni che utilizzano l'API effettuano chiamate di sistema all'ambiente applicativo appropriato tramite il microkernel. L'ambiente dell'applicazione elabora la richiesta, la esegue (possibilmente utilizzando le funzioni di base del microkernel come aiuto) e invia il risultato all'applicazione. Nel corso dell'esecuzione di una richiesta, l'ambiente dell'applicazione deve, a sua volta, accedere ai meccanismi di base del sistema operativo implementati dal microkernel e da altri server del sistema operativo.

Figura: 3. 10. Approccio microkernel all'implementazione di più ambienti applicativi

Questo approccio alla costruzione di più ambienti applicativi presenta tutti i vantaggi e gli svantaggi di un'architettura microkernel, in particolare:

    è molto semplice aggiungere ed escludere ambienti applicativi, conseguenza della buona estensibilità dei sistemi operativi microkernel;

    l'affidabilità e la stabilità si esprimono nel fatto che se uno degli ambienti applicativi si guasta, tutti gli altri rimangono operativi;

    le basse prestazioni del sistema operativo microkernel influiscono sulla velocità degli ambienti applicativi e quindi sulla velocità di esecuzione dell'applicazione.

La creazione di più ambienti applicativi all'interno di un sistema operativo per l'esecuzione di applicazioni di OS differenti è un modo che permette di avere un'unica versione del programma e trasferirla tra i sistemi operativi. Gli ambienti applicativi multipli forniscono la compatibilità binaria di un determinato sistema operativo con le applicazioni scritte per altri sistemi operativi. Di conseguenza, gli utenti hanno una maggiore libertà di scelta dei sistemi operativi e un accesso più facile a software di qualità.

Domande di autotest

    Cosa si intende per architettura del sistema operativo?

    Quali sono i tre livelli principali nella struttura di un sistema informatico?

    Qual è il ruolo del sistema operativo sull'interfaccia della chiamata di sistema?

    Quali condizioni devono essere soddisfatte quando si progetta un sistema operativo affinché il sistema operativo sia facilmente trasportabile?

    Qual è la differenza tra l'architettura del microkernel e l'architettura del sistema operativo tradizionale?

    Perché un microkernel è adatto per supportare l'elaborazione distribuita?

    Cosa si intende con il concetto di più ambienti applicativi?

    Qual è l'essenza del metodo di traduzione della biblioteca?

La creazione di un ambiente applicativo a tutti gli effetti, pienamente compatibile con l'ambiente di un altro sistema operativo, è un compito piuttosto difficile, strettamente correlato alla struttura del sistema operativo. Esistono varie opzioni per la creazione di più ambienti applicativi, che differiscono sia per le caratteristiche delle soluzioni architettoniche che per le funzionalità che forniscono diversi gradi di portabilità dell'applicazione. .

In molte versioni di UNIX, il traduttore dell'ambiente dell'applicazione è implementato come una normale applicazione. Nei sistemi operativi costruiti utilizzando il concetto di microkernel, come Windows NT o Workplace OS, gli ambienti applicativi vengono eseguiti come server in modalità utente. E in OS / 2, con la sua architettura più semplice, gli strumenti per l'organizzazione degli ambienti applicativi sono integrati in profondità nel sistema operativo. Una delle opzioni più ovvie per l'implementazione di più ambienti applicativi si basa su una struttura del sistema operativo a livelli standard. .

Figura: 3.13. Ambienti di programmazione di applicazioni che traducono le chiamate di sistema

Sfortunatamente, il comportamento di quasi tutte le funzioni che compongono l'API di un OS tende a differire in modo significativo dal comportamento delle funzioni corrispondenti di un altro.

In un'altra implementazione di più ambienti applicativi, il sistema operativo dispone di più interfacce di programmazione delle applicazioni peer. Nell'esempio mostrato in Fig. 3.14 L'esempio del sistema operativo supporta le applicazioni scritte per OS1, OS2 e OS3. Per fare ciò, le interfacce di programmazione dell'applicazione di tutti questi sistemi operativi si trovano direttamente nello spazio del kernel di sistema: API OS1, API OS2 e API OS3. In questa variante, le funzioni API fanno riferimento alle funzioni del sistema operativo sottostante, che devono supportare tutti e tre gli ambienti applicativi generalmente incompatibili.

Diversi sistemi operativi gestiscono l'ora di sistema in modi diversi, utilizzano un formato diverso dell'ora del giorno, condividono il tempo del processore in base ai propri algoritmi, ecc. Le funzioni di ciascuna API sono implementate dal kernel tenendo conto delle specifiche del sistema operativo corrispondente, anche se hanno uno scopo simile. Ad esempio, come accennato, la funzione di creazione del processo funziona in modo diverso per un'applicazione UNIX e un'applicazione OS / 2. Allo stesso modo, quando un processo termina, il kernel deve anche determinare a quale sistema operativo appartiene il processo. Se questo processo è stato creato su richiesta di un'applicazione UNIX, durante la sua chiusura, il kernel dovrebbe inviare un segnale al processo genitore, come avviene nel sistema operativo UNIX. E dopo che il processo OS / 2 è terminato, il kernel dovrebbe notare che l'ID del processo non può essere riutilizzato da un altro processo OS / 2. Affinché il kernel possa selezionare l'implementazione desiderata della chiamata di sistema, ogni processo deve passare una serie di caratteristiche di identificazione al kernel.

Figura: 3.14 Implementazione dell'interoperabilità basata su API multiple peer

Un altro modo per creare più ambienti applicativi è basato su un approccio microkernel... Allo stesso tempo, è molto importante separare i meccanismi del sistema operativo di base, comuni a tutti gli ambienti applicativi, dalle funzioni di alto livello specifiche di ciascuno degli ambienti applicati che risolvono problemi strategici.

Secondo l'architettura del microkernel, tutte le funzioni del sistema operativo sono implementate dal microkernel e dai server in modalità utente. È importante che ogni ambiente dell'applicazione sia progettato come un server in modalità utente separato e non includa meccanismi di base (Figura 3.15). Le applicazioni che utilizzano l'API effettuano chiamate di sistema all'ambiente applicativo appropriato tramite il microkernel. L'ambiente dell'applicazione elabora la richiesta, la esegue (magari utilizzando le funzioni di base del microkernel per la guida) e invia il risultato all'applicazione. Nel corso dell'esecuzione di una richiesta, l'ambiente dell'applicazione deve, a sua volta, accedere ai meccanismi di base del sistema operativo implementati dal microkernel e da altri server del sistema operativo.

Questo approccio alla costruzione di più ambienti applicativi presenta tutti i vantaggi e gli svantaggi di un'architettura microkernel, in particolare:

§ è molto facile aggiungere ed escludere ambienti applicativi, conseguenza della buona estensibilità dei sistemi operativi microkernel;

§ affidabilità e stabilità si esprimono nel fatto che se uno degli ambienti applicativi si guasta, tutti gli altri rimangono operativi;

§ le basse prestazioni del sistema operativo microkernel influiscono sulla velocità degli ambienti applicativi e quindi sulla velocità di esecuzione dell'applicazione.

Figura: 3.15. Approccio microkernel all'implementazione di più ambienti applicativi

La creazione di più ambienti applicativi all'interno di un sistema operativo per l'esecuzione di applicazioni di diversi sistemi operativi è un modo che consente di avere un'unica versione del programma e trasferirla tra sistemi operativi. Gli ambienti applicativi multipli forniscono la compatibilità binaria di un dato sistema operativo con le applicazioni scritte per altri sistemi operativi. Di conseguenza, gli utenti hanno una maggiore libertà di scelta del sistema operativo e un accesso più facile a software di qualità.

Conclusioni:

§ La struttura del sistema operativo più semplice consiste nel dividere tutti i componenti del sistema operativo in moduli che eseguono le funzioni principali del sistema operativo (kernel) e moduli che eseguono funzioni ausiliarie del sistema operativo. I moduli del sistema operativo di supporto sono progettati come applicazioni (utilità e programmi di elaborazione del sistema) o come librerie di procedure. I moduli ausiliari vengono caricati nella RAM solo per la durata delle loro funzioni, cioè sono transitori. I moduli del kernel risiedono nella RAM, ovvero sono residenti.

§ In presenza di supporto hardware per modalità con diversi livelli di autorità, la stabilità del sistema operativo può essere aumentata eseguendo le funzioni del kernel in modalità privilegiata, e moduli OS ausiliari e applicazioni in modalità utente. Ciò consente di proteggere codici e dati del sistema operativo e delle applicazioni da accessi non autorizzati. Il sistema operativo può agire da arbitro nelle controversie sulle applicazioni sulle risorse.

§ Il kernel, essendo un elemento strutturale del SO, a sua volta, può essere scomposto logicamente nei seguenti livelli (a partire da quello più basso):

§ componenti del sistema operativo dipendenti dalla macchina;

§ meccanismi di base del kernel;

§ gestori delle risorse;

§ interfaccia di chiamata di sistema.

§ In un sistema multistrato, ogni strato serve lo strato sovrastante, eseguendo per esso un certo insieme di funzioni che formano un'interfaccia tra strati. Sulla base delle funzioni del livello sottostante, il livello successivo nella gerarchia costruisce le sue funzioni - più complesse e più potenti, che, a loro volta, risultano essere primitive per creare funzioni ancora più potenti del livello sovrastante. L'organizzazione multistrato del sistema operativo semplifica notevolmente lo sviluppo e la modernizzazione del sistema.

§ Qualsiasi sistema operativo per risolvere i suoi compiti interagisce con l'hardware del computer, vale a dire: mezzi per supportare la modalità privilegiata e la traduzione degli indirizzi, mezzi per cambiare i processi e proteggere le aree di memoria, un sistema di interruzione e un timer di sistema. Ciò rende la macchina del sistema operativo dipendente, legata a una piattaforma hardware specifica.

§ La portabilità del sistema operativo può essere ottenuta osservando le seguenti regole. Innanzitutto, la maggior parte del codice deve essere scritta in una lingua dotata di traduttori su tutti i computer in cui si suppone che il sistema venga trasferito. In secondo luogo, la quantità di pezzi di codice dipendenti dalla macchina che interagiscono direttamente con l'hardware dovrebbe essere ridotta al minimo il più possibile. Terzo, il codice dipendente dall'hardware deve essere localizzato in modo affidabile su più moduli.

§ L'architettura del microkernel è un'alternativa al modo classico di costruire un sistema operativo, in base al quale tutte le principali funzioni del sistema operativo che compongono un kernel multistrato vengono eseguite in modalità privilegiata. Nei sistemi operativi microkernel, solo una porzione molto piccola del sistema operativo, chiamata microkernel, rimane in esecuzione in modalità privilegiata. Tutte le altre funzioni del kernel di alto livello sono progettate come applicazioni in modalità utente.

§ I sistemi operativi Microkernel soddisfano la maggior parte dei requisiti dei sistemi operativi moderni, con portabilità, estensibilità, affidabilità e una buona base per supportare le applicazioni distribuite. Questi vantaggi hanno il prezzo di prestazioni ridotte, che è il principale svantaggio dell'architettura del microkernel.

§ Ambiente software applicativo: un insieme di strumenti del sistema operativo progettati per organizzare l'esecuzione di applicazioni utilizzando un sistema specifico di istruzioni macchina, un tipo specifico di API e un formato specifico del programma eseguibile. Ogni sistema operativo crea almeno un ambiente di programmazione dell'applicazione. Il problema è garantire la compatibilità di diversi ambienti software all'interno di un sistema operativo. Quando si creano più ambienti applicativi, vengono utilizzate varie soluzioni architetturali, concetti di emulazione di codice binario e traduzioni API.

Compiti ed esercizi

1. Quali dei seguenti termini sono sinonimi?

§ regime privilegiato;

§ modalità protetta;

§ modalità supervisore;

§ modalità utente;

§ modalità reale;

§ modalità kernel.

2. È possibile, analizzando il codice binario di un programma, concludere che non può essere eseguito in modalità utente?

3. Quali sono le differenze tra un processore in modalità privilegiata e utente?

4. Idealmente, un'architettura del sistema operativo microkernel richiede che solo quei componenti del sistema operativo che non possono essere eseguiti in modalità utente vengano inseriti nel microkernel. Cosa spinge gli sviluppatori di sistemi operativi ad allontanarsi da questo principio ed espandere il kernel trasferendovi funzioni che potrebbero essere implementate sotto forma di processi server?

5. Quali sono i passaggi necessari per sviluppare una variante del sistema operativo mobile per una nuova piattaforma hardware?

6. Descrivi come le applicazioni interagiscono con un sistema operativo dotato di architettura microkernel.

7. Quali sono i passaggi coinvolti nell'esecuzione di una chiamata di sistema in un sistema operativo microkernel e un sistema operativo con un kernel monolitico?

8. Può un programma emulato su un processore "estraneo" funzionare più velocemente di uno "nativo"?

Concetto di architettura del microkernel

Compatibilità binaria e sorgente

La compatibilità binaria è un tipo di compatibilità del programma che consente a un programma di funzionare in ambienti diversi senza modificare i suoi file eseguibili.

Questo termine è spesso usato per indicare "compatibilità del sistema operativo", nel qual caso si riferisce alla capacità di una versione già compilata di un programma per un sistema operativo di funzionare su un altro sistema operativo senza ricompilazione. La compatibilità binaria include la compatibilità dei byte dei campi di carico, l'identità completa del meccanismo per chiamare le funzioni, passare le variabili e ottenere il risultato dei calcoli e un'implementazione completa dell'interfaccia di programmazione. Allo stesso tempo, l'implementazione tecnica può essere completamente diversa: l'importante è che tutte le sfide siano implementate e che portino al risultato atteso, e il modo in cui questo risultato viene raggiunto dipende dai creatori del programma.

La compatibilità della sorgente richiede un compilatore appropriato nel software, così come la compatibilità della libreria e delle chiamate di sistema. In questo caso, è necessario ricompilare i sorgenti esistenti in un nuovo modulo eseguibile.

L'architettura del microkernel è un'alternativa al modo classico di costruire un sistema operativo, in base al quale tutte le principali funzioni del sistema operativo che compongono un kernel multilayer vengono eseguite in modalità privilegiata. Nei sistemi operativi microkernel, solo una porzione molto piccola del sistema operativo, chiamata microkernel, rimane in esecuzione in modalità privilegiata. Tutte le altre funzioni del kernel di alto livello sono progettate come applicazioni in modalità utente. I sistemi operativi Microkernel soddisfano la maggior parte dei requisiti dei sistemi operativi moderni con portabilità, estensibilità, affidabilità e una buona base per supportare le applicazioni distribuite. Questi vantaggi hanno il costo di prestazioni ridotte, che è il principale svantaggio dell'architettura del microkernel.

Una delle opzioni più ovvie per l'implementazione di più ambienti applicativi si basa su una struttura a strati del sistema operativo standard.

OS OS1, oltre alle sue applicazioni, supporta le applicazioni OS2 e OS3. Per fare ciò, contiene applicazioni speciali, ambienti software applicativi che traducono le interfacce di API del sistema operativo esterno ShchS2 e API OS3 nell'interfaccia del loro sistema operativo API OS1 nativo.

Un'altra implementazione di più ambienti applicativi presuppone che il sistema operativo disponga di più API peer.

Le interfacce di programmazione dell'applicazione di tutti i sistemi operativi si trovano nello spazio kernel del sistema.



Le funzioni del livello API si riferiscono alle funzioni del livello del sistema operativo sottostante, che deve supportare 3 (in questo caso) ambienti incompatibili.

Le funzioni di ogni API sono implementate dal kernel, tenendo conto delle specifiche del sistema operativo corrispondente, anche se hanno uno scopo simile.

Un altro modo per creare più ambienti applicativi è basato su un approccio microkernel. Allo stesso tempo, è importante separare i meccanismi di base del sistema operativo comuni a tutti gli ambienti applicativi da quelli specifici.

Secondo l'architettura del microkernel, tutte le funzioni del sistema operativo sono implementate dal microkernel e dai server in modalità utente.

È importante che ogni ambiente dell'applicazione sia progettato come un server in modalità utente separato e non includa meccanismi di base.

L'applicazione, utilizzando l'API, effettua chiamate di sistema all'ambiente applicativo appropriato tramite il microkernel.

L'ambiente dell'applicazione crea la richiesta, la esegue e invia il risultato all'applicazione. Durante l'esecuzione di una query, l'ambiente dell'applicazione deve accedere ai meccanismi del sistema operativo sottostante implementati dal microkernel e da altri server del sistema operativo.

Tutti i vantaggi e gli svantaggi di un'architettura microkernel sono inerenti a questo approccio alla costruzione di più ambienti applicativi.

LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam