1. #1
    Chroniqueur Actualités
    Avatar de Patrick Ruiz
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    février 2017
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : février 2017
    Messages : 584
    Points : 19 874
    Points
    19 874

    Par défaut Microsoft annonce la prise en charge des secondes intercalaires

    Microsoft annonce la prise en charge des secondes intercalaires
    Par Windows 10 Redstone 5 et Windows Server 2019

    L’information est tirée d’un billet de blog du géant technologique paru il y a peu. Microsoft annonce que la mouture à venir de Windows 10 (la Redstone 5) et Windows Server 2019 vont prendre les secondes intercalaires en charge.

    De façon brossée, une seconde intercalaire est un ajustement (ajout ou soustraction) d’une seconde effectué sur l’échelle de temps universel coordonné (UTC) pour s’assurer que le temps universel lié à la rotation de la Terre reste calé sur l’heure solaire. « Avec la diminution de la vitesse de rotation de la Terre, l’heure UTC diverge de celle du soleil. Une fois qu’il y a un décalage d’au plus 0.9 s, une seconde intercalaire est insérée pour assurer la synchronisation », explique Microsoft. La prise en compte de ce phénomène a débuté en 1972 et, d’après les calculs, l’ajout d’une seconde intercalaire est nécessaire tous les 18 mois. C’est ce que les prochaines moutures de Windows 10 et Windows Server se chargeront d’effectuer pour coller avec des exigences formulées par des organismes de régulation internationaux.


    La firme de Redmond a publié un visuel de la manière dont cette soixante et unième (61e) seconde sera insérée. Notez le passage non pas de 4:59:59 à 5:00:00, mais de 4:59:59 à 4:59:60, ce, lorsqu’un top départ est donné via Windows Update ou au travers de NTP . Microsoft a choisi de délaisser une autre implémentation qui consiste en fragmenter la seconde additionnelle et à l’insérer à l’heure standard en étalant le processus sur des jours.

    Nom : PositiveLS.gif
Affichages : 2021
Taille : 23,7 Ko

    Les changements sont de nature à modifier les habitudes des développeurs. « Certains frameworks sont ne prennent pas les secondes intercalaires en charge. Par exemple, le framework .NET fait usage de sa logique interne pour déterminer l’heure. Cette dernière ne prend pas les secondes intercalaires en compte. Donc après l’introduction d’une de ces dernières, la sortie de la fonction System.DateTime.Now.ToString() sera en avance d’une seconde de celle de l’heure système. (Nous travaillons à corriger ce détail avec l’équipe .NET) », prévient le géant technologique.

    La firme de Redmond également publié deux ossatures de code qui permettent de bien appréhender le processus de prise en charge des secondes intercalaires au sein d’une application UWP .

    Version qui requiert le dernier kit de développement Windows 10 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    #include "Windows.h"
    
    #include <iostream>
    
    int wmain() {
    	std::cout << "Testing Leap Second update actually shows '60' in the seconds...\n";
    
    	DWORD ErrorCode;
    	BOOL Success;
    	ULONG Flags;
    	PROCESS_LEAP_SECOND_INFO LeapSecondInfo;
    
    	//
    	// Opt in to Leap Seconds
    	//
    
    	ZeroMemory(&LeapSecondInfo, sizeof(LeapSecondInfo));
    	Flags |= PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND;
    	LeapSecondInfo.Flags = Flags;
    
    
    
    	Success = SetProcessInformation(GetCurrentProcess(),
    		ProcessLeapSecondInfo,
    		&LeapSecondInfo,
    		sizeof(LeapSecondInfo));
    
    
    	if (!Success) {
    		ErrorCode = GetLastError();
    		fprintf(stderr, "Set Leap Second Info failed: %d\n", ErrorCode);
    	}
    
    	// print current time 60 times with sleep interval of 950ms
    	SYSTEMTIME lt;
    	for (int i = 0; i < 60; i++) {
    		GetLocalTime(&lt);
    		printf("the local time is %d/%d/%dT%02d:%02d:%02d\n", lt.wYear, lt.wMonth, lt.wDay, lt.wHour, lt.wMinute, lt.wSecond);
    		Sleep(950);
    	}
    }
    Version qui ne s’appuie pas sur le SDK Windows 10 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #include "Windows.h"
    
    #include <iostream>
    
    typedef struct _PROCESS_LEAP_SECOND_INFO {
                  ULONG Flags;
                  ULONG Reserved;
    } PROCESS_LEAP_SECOND_INFO, *PPROCESS_LEAP_SECOND_INFO;
    
    #define PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND   0x1
    #define ProcessLeapSecondInfo 8
    
    
    int wmain() {
    	std::cout << "Testing Leap Second update actually shows '60' in the seconds...\n";
    
    	DWORD ErrorCode;
    	BOOL Success;
    	ULONG Flags;
    	PROCESS_LEAP_SECOND_INFO LeapSecondInfo;
    
    	//
    	// Opt in to Leap Seconds
    	//
    
    	ZeroMemory(&LeapSecondInfo, sizeof(LeapSecondInfo));
    	Flags |= PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND;
    	LeapSecondInfo.Flags = Flags;
    
          Success = GetProcessInformation(
    GetCurrentProcess(),                           (PROCESS_INFORMATION_CLASS) ProcessLeapSecondInfo,
                &LeapSecondInfo,
                sizeof(LeapSecondInfo));
    
    
    	if (!Success) {
    		ErrorCode = GetLastError();
    		fprintf(stderr, "Set Leap Second Info failed: %d\n", ErrorCode);
    	}
    
    	// print current time 60 times with sleep interval of 950ms
    	SYSTEMTIME lt;
    	for (int i = 0; i < 60; i++) {
    		GetLocalTime(&lt);
    		printf("the local time is %d/%d/%dT%02d:%02d:%02d\n", lt.wYear, lt.wMonth, lt.wDay, lt.wHour, lt.wMinute, lt.wSecond);
    		Sleep(950);
    	}
    }
    La prise en charge des secondes intercalaires s’inscrit dans une mouvance plus vaste d’amélioration des outils liés à la gestion du temps au sein des OS de Microsoft. Sous la Redstone 5 et Windows Server 2019, NTP cède sa place à PTP – Precision Timing Protocol. En sus, ces versions de systèmes d’exploitation arrivent avec une fonctionnalité logicielle de réduction des retards de traitement des paquets réseaux.

    Source : Billet Microsoft

    Et vous ?

    Comment accueillez-vous la prise en charge des secondes intercalaires au sein de ces systèmes d’exploitation de Microsoft ?

    Quels avantages (inconvénients) introduit-t-elle dans vos tâches de développement ?

    Voir aussi :

    Windows 10 Redstone 5 est disponible pour les « Skip Ahead Insiders », cette nouvelle version embarque plusieurs améliorations et correctifs

    Windows 10 Redstone 5 : la build 17643 est disponible et fait du copier-coller un atout supplémentaire du sous-système Linux

    Windows 10 Redstone 5 : la build 17661 fait de Screen Sketch une application indépendante pour une meilleure expérience de capture d'écran

    Windows 10 Redstone 5 : la Buid 17711 apporte des améliorations à Microsoft Edge et permet désormais d'activer le HDR

    Windows 10 Redstone 5 : la build 17704 apporte le blocage de la lecture auto dans Edge et supprime la technologie de gestion de fenêtre Sets
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 9 026
    Points : 19 955
    Points
    19 955

    Par défaut

    Rien de mieux pour faire planter des logiciels ne gérant pas le format 00:00:60 (qui gère ça ?). Il aurait été plus malin d'ajouter ou retirer une seconde de façon à rester dans le cadre ou le champ des secondes ne dépasse jamais :59 (exemple passage de :57 à :58) quitte à faire durer 1 seconde 2 seconde au niveau de l'affichage.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    février 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : février 2008
    Messages : 111
    Points : 220
    Points
    220

    Par défaut

    Je sens que ça va m... de tous les cotés. Et qu'il va y avoir des effets de bords par porte-conteneurs entier.

    Je me demande comment les superviseurs industriels, basées sur un OS M$, vont prendre en charge cette fonctionnalité .
    Surtout s'ils communiquent avec des automates qui n'ont pas cette fonctionnalité ou qui ne se synchronisent pas sur le NTP de M$.

    Et je ne parle pas de la précision des quartz de tout ce petit monde .

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 9 026
    Points : 19 955
    Points
    19 955

    Par défaut

    Après le bug de l'an 2000, le bug de la seconde intercalaire.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Membre averti Avatar de Aizen64
    Profil pro
    Inscrit en
    mai 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2007
    Messages : 512
    Points : 391
    Points
    391

    Par défaut

    Pourquoi choisir 950ms de repos et pas un autre interval ? 970 ou 980.
    Exprimer une différence d'opinion vaut mieux que :

Discussions similaires

  1. Prise en charge des Sous-sous-structure
    Par le_gueux dans le forum 4D
    Réponses: 7
    Dernier message: 21/08/2007, 11h41
  2. annuler la prise en charge des caractaires spéciaux
    Par simodox dans le forum ASP.NET
    Réponses: 1
    Dernier message: 24/05/2007, 08h09
  3. Réponses: 5
    Dernier message: 23/05/2007, 17h48
  4. Prise en charge des images
    Par Pascal.Alain.B dans le forum Assembleur
    Réponses: 2
    Dernier message: 11/03/2007, 21h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo