En aquest tema, explorarem com interactuar amb els serveis del sistema a OpenVMS utilitzant diferents llenguatges de programació. Els serveis del sistema són funcions proporcionades pel sistema operatiu que permeten als programes realitzar tasques específiques com la gestió de processos, la manipulació de fitxers, la comunicació entre processos, etc.
Objectius d'Aprenentatge
- Comprendre què són els serveis del sistema a OpenVMS.
- Aprendre a utilitzar serveis del sistema des de diferents llenguatges de programació.
- Implementar exemples pràctics d'ús de serveis del sistema.
- Resoldre problemes comuns relacionats amb la interfície amb serveis del sistema.
Conceptes Clau
Què són els Serveis del Sistema?
Els serveis del sistema són funcions proporcionades pel sistema operatiu que permeten als programes interactuar amb el sistema de manera controlada i segura. A OpenVMS, aquests serveis es poden invocar des de diversos llenguatges de programació com C, Fortran, i COBOL.
Tipus de Serveis del Sistema
- Gestió de Processos: Creació, terminació i sincronització de processos.
- Gestió de Fitxers: Creació, lectura, escriptura i esborrat de fitxers.
- Comunicació entre Processos: Enviament i recepció de missatges entre processos.
- Gestió de Memòria: Assignació i alliberament de memòria.
Utilització de Serveis del Sistema en C
Exemple: Creació d'un Fitxer
#include <stdio.h> #include <stdlib.h> #include <descrip.h> #include <lib$routines.h> #include <starlet.h> int main() { struct dsc$descriptor_s file_name; file_name.dsc$w_length = strlen("testfile.txt"); file_name.dsc$a_pointer = "testfile.txt"; file_name.dsc$b_dtype = DSC$K_DTYPE_T; file_name.dsc$b_class = DSC$K_CLASS_S; unsigned long status; status = sys$create(&file_name, 0, 0, 0, 0, 0, 0); if (!(status & 1)) { printf("Error creating file\n"); exit(1); } printf("File created successfully\n"); return 0; }
Explicació del Codi
- Incloure Llibreries: Les llibreries
descrip.h
,lib$routines.h
istarlet.h
són necessàries per utilitzar els serveis del sistema. - Descriptor de Fitxer: Es defineix un descriptor per al nom del fitxer.
- Crida al Servei del Sistema:
sys$create
és el servei del sistema utilitzat per crear un fitxer. - Gestió d'Errors: Es comprova l'estat retornat per la crida al servei per assegurar-se que el fitxer s'ha creat correctament.
Exercici Pràctic
Objectiu: Escriu un programa en C que llegeixi el contingut d'un fitxer existent i el mostri per pantalla.
Pistes:
- Utilitza el servei del sistema
sys$open
per obrir el fitxer. - Utilitza el servei del sistema
sys$read
per llegir el contingut del fitxer.
Utilització de Serveis del Sistema en Fortran
Exemple: Creació d'un Fitxer
PROGRAM CreateFile IMPLICIT NONE INTEGER :: status CHARACTER(len=11) :: file_name file_name = 'testfile.txt' CALL LIB$CREATE_FILE(file_name, status) IF (status .NE. 1) THEN PRINT *, 'Error creating file' STOP END IF PRINT *, 'File created successfully' END PROGRAM CreateFile
Explicació del Codi
- Definició de Variables: Es defineix una variable per al nom del fitxer i una per a l'estat.
- Crida al Servei del Sistema:
LIB$CREATE_FILE
és el servei del sistema utilitzat per crear un fitxer. - Gestió d'Errors: Es comprova l'estat retornat per la crida al servei per assegurar-se que el fitxer s'ha creat correctament.
Exercici Pràctic
Objectiu: Escriu un programa en Fortran que llegeixi el contingut d'un fitxer existent i el mostri per pantalla.
Pistes:
- Utilitza el servei del sistema
LIB$OPEN_FILE
per obrir el fitxer. - Utilitza el servei del sistema
LIB$READ_FILE
per llegir el contingut del fitxer.
Utilització de Serveis del Sistema en COBOL
Exemple: Creació d'un Fitxer
IDENTIFICATION DIVISION. PROGRAM-ID. CreateFile. DATA DIVISION. WORKING-STORAGE SECTION. 01 FILE-NAME PIC X(11) VALUE 'testfile.txt'. 01 STATUS PIC S9(9) COMP. PROCEDURE DIVISION. CALL 'LIB$CREATE_FILE' USING BY DESCRIPTOR FILE-NAME BY REFERENCE STATUS. IF STATUS NOT = 1 DISPLAY 'Error creating file' STOP RUN END-IF. DISPLAY 'File created successfully'. STOP RUN.
Explicació del Codi
- Definició de Variables: Es defineixen variables per al nom del fitxer i l'estat.
- Crida al Servei del Sistema:
LIB$CREATE_FILE
és el servei del sistema utilitzat per crear un fitxer. - Gestió d'Errors: Es comprova l'estat retornat per la crida al servei per assegurar-se que el fitxer s'ha creat correctament.
Exercici Pràctic
Objectiu: Escriu un programa en COBOL que llegeixi el contingut d'un fitxer existent i el mostri per pantalla.
Pistes:
- Utilitza el servei del sistema
LIB$OPEN_FILE
per obrir el fitxer. - Utilitza el servei del sistema
LIB$READ_FILE
per llegir el contingut del fitxer.
Resum
En aquest tema, hem après què són els serveis del sistema a OpenVMS i com utilitzar-los des de diferents llenguatges de programació com C, Fortran i COBOL. Hem vist exemples pràctics de com crear fitxers utilitzant aquests serveis i hem proposat exercicis per reforçar els conceptes apresos. La interfície amb serveis del sistema és una habilitat essencial per a qualsevol programador que treballi amb OpenVMS, ja que permet realitzar operacions avançades i interactuar de manera eficient amb el sistema operatiu.
Curs de Programació OpenVMS
Mòdul 1: Introducció a OpenVMS
- Què és OpenVMS?
- Història i Evolució d'OpenVMS
- Conceptes Bàsics i Terminologia
- Visió General de l'Arquitectura del Sistema
- Instal·lació i Configuració
Mòdul 2: Comandes Bàsiques d'OpenVMS
- Introducció a DCL (Digital Command Language)
- Comandes de Gestió de Fitxers
- Comandes de Gestió de Processos
- Comandes de Gestió del Sistema
- Ús de l'Ajuda i la Documentació
Mòdul 3: Sistema de Fitxers d'OpenVMS
- Estructura del Sistema de Fitxers
- Tipus i Atributs de Fitxers
- Operacions amb Fitxers
- Gestió de Directoris
- Control d'Accés i Seguretat
Mòdul 4: Scripting amb DCL
- Introducció al Scripting amb DCL
- Variables i Tipus de Dades
- Estructures de Control
- Subrutines i Funcions
- Gestió d'Errors
Mòdul 5: Gestió del Sistema OpenVMS
- Gestió de Comptes d'Usuari
- Gestió de Discs i Volums
- Procediments de Còpia de Seguretat i Restauració
- Monitorització del Sistema i Optimització del Rendiment
- Gestió de Parches i Actualitzacions
Mòdul 6: Xarxes a OpenVMS
- Conceptes Bàsics de Xarxes
- Configuració de TCP/IP
- Configuració de DECnet
- Serveis i Protocols de Xarxa
- Resolució de Problemes de Xarxa
Mòdul 7: Programació Avançada a OpenVMS
- Introducció als Llenguatges de Programació d'OpenVMS
- Ús de C a OpenVMS
- Ús de Fortran a OpenVMS
- Ús de COBOL a OpenVMS
- Interfície amb Serveis del Sistema
Mòdul 8: Clúster d'OpenVMS
- Introducció als Clústers
- Configuració i Gestió de Clústers
- Comunicació en Clúster
- Failover i Equilibri de Càrrega
- Seguretat en Clúster
Mòdul 9: Seguretat a OpenVMS
- Conceptes de Seguretat i Millors Pràctiques
- Autenticació i Autorització d'Usuaris
- Auditoria i Monitorització
- Xifrat de Dades
- Resposta i Recuperació d'Incidents