Talk:Execute Channel Program: Difference between revisions

Content deleted Content added
Too specific: new section
Cewbot (talk | contribs)
m Maintain {{WPBS}} and vital articles: 1 WikiProject template. Create {{WPBS}}. Keep majority rating "Stub" in {{WPBS}}. Remove 1 same rating as {{WPBS}} in {{WikiProject Computing}}.
 
(3 intermediate revisions by 3 users not shown)
Line 1:
{{WikiProject Computingbanner shell|class=Stub|
{{WikiProject Computing|importance=|portal=|attention=|needs-image=|needs-infobox=|network=|network-importance=|software=Yes |software-importance=|security= |security-importance=}}
|small=
|class= Stub
|importance=
|portal=
|attention=
|needs-image=
|needs-infobox=
 
|network=|network-importance=
|software=Yes |software-importance=
|security= |security-importance=
}}
 
== Duplicate info ==
 
Line 28 ⟶ 17:
 
The title of the article is generic, but EXCP exists in [[DOS/360 and successors]] and many of the details are quite different from those for [[OS/360 and successors]]. I've added some DOS reference, split the existing references depending on whether they are generic, OS-specific or DOS-specific, and added a warning to the lead. If there is an editor with DOS experience, please consider writing DOS-specific sections. [[User:Chatul|Shmuel (Seymour J.) Metz Username:Chatul]] ([[User talk:Chatul|talk]]) 20:55, 18 December 2019 (UTC)
 
== quota ==
 
As well as I understand it, from reading ''Mythical Man Month'' some years ago, the way OS/360 came out, and specifically the I/O subsystem, had to do with the way quotas were used for the people writing it. There were limits in how much supervisor memory space could be used, resulting in as much as possible being moved into user space. Least obvious might be the DCB. In any case, the whole idea behind EXCP is that the access methods do much of their work in user space and problem state, and build the appropriate channel program. Then EXCP where the OS verifies that the channel program doesn't do things it isn't supposed to do, like read/write the wrong data set, or wrong part of memory. As well as I know, Unix and related systems do much more in system space and supervisor state. Enough that Unix reports time used by programs as both user and system time. I don't know that all needs to be in the article, but access methods writing channel programs for user programs should be, and probably the indication that it is done in user space and problem state. A side effect of writing the OS that way, is that user programs can avoid access methods, write their own channel programs, and EXCP them. Then there are self-modifying channel programs, and never-ending
channel programs, that might be discussed somewhere. [[User:Gah4|Gah4]] ([[User talk:Gah4|talk]]) 19:36, 26 May 2020 (UTC)
 
:The OS doesn't need to verify the channel program, althogh it does need to validate the DEB address. IOS puts an appropriate protection key in the CAW, so you can't access unathorized storage, and EXCP prefixes your [[DASD]] channel program with a Seek and Set File Mask so you can't access anything outside your dataset. Ignoring a few integrity holes in OS/360 (plugged in MVS), the things that need to be protected are in key zero and the user can't muck with them. It would, IMHO, have been a serious design error to put the DCB and IOB in protected storage.
 
:Self modifying channel programs and never ending channel programs? You might see those in, e.g., Fetch, ISAM, paging; I hope to never see them in user code. But it's not my dog.
 
:While the CS notion of kernel doesn't really apply to OS/360, SRB mode has some parallels; MVS does track CPU time separately for TCB mode and SRB mode. It's probably best to relegate any discussion of the role of SRBs in I/O to [[Start Input/Output|STARTIO]].
 
:I believe that the trend in Linux has been to move things out of the kernel and into user space; I don't know about (free|net|open)bsd. [[User:Chatul|Shmuel (Seymour J.) Metz Username:Chatul]] ([[User talk:Chatul|talk]]) 21:19, 26 May 2020 (UTC)