From: Paul Winalski <paul.winalski@gmail.com>
To: Larry McVoy <lm@mcvoy.com>
Cc: TUHS main list <tuhs@tuhs.org>
Subject: [TUHS] Re: Perkin-Elmer Sort/Merge II vs Unix sort(1)
Date: Sat, 18 Jan 2025 10:40:50 -0500 [thread overview]
Message-ID: <CABH=_VQczwRqf2y97d6aoJb1KZYaTeT-X0P7+fJRqxvRrHXY1g@mail.gmail.com> (raw)
In-Reply-To: <20250118151656.GQ1701@mcvoy.com>
[-- Attachment #1: Type: text/plain, Size: 2541 bytes --]
On Sat, Jan 18, 2025 at 10:17 AM Larry McVoy <lm@mcvoy.com> wrote:
> On Sat, Jan 18, 2025 at 04:51:15PM +0200, Diomidis Spinellis wrote:
> > But I can't stop thinking that, in common
> > with the mainframes these programs were running on, they represent a
> mindset
> > that has been surpassed by superior ideas.
>
> I disagree. Go back and read the reply where someone was talking about
> sorting datasets that spanned multiple tapes, each of which was much
> larger than local disk. sort(1) can't begin to think about handling
> something like that.
>
> I have a lot of respect for how Unix does things, if the problem fits
> then the Unix answer is more simple, more flexible, it's better. If
> the problem doesn't fit, the Unix answer is awful.
>
> cmd < data | cmd2 | cmd3
>
> is a LOT of data copying. A custom answer that did all of that in
> one address space is a lot more efficient but also a lot more special
> purpose. Unix wins on flexibility and simplicity, special purpose
> wins on performance.
>
Another consideration: the smaller System/360 mainframes ran DOS (Disk
Operating System) or TOS (Tape Operating System, for shops that didn't have
disks). These were both single-process operating systems. There is no way
that the Unix method of chaining programs together could have been done.
OS MFT (Multiprogramming with a Fixed number of Tasks) and MVT
(Multiprogramming with a Variable number of Tasks) were multiprocess
systems, but they lacked any interprocess communication system (such as
Unix pipes).
True databases in those days were rare, expensive, slow, and of limited
capacity. The usual way to, say, produce a list of customers who owed
money, sorted by how much they owed would be:
[1] scan the data set for customers who owed money and write that out to
tape(s)
[2] use sort/merge to sort the data on tape(s) in the desired order
[3] run a program to print the sorted data in the desired format
It is important in step [2] to keep the tapes moving. Start/stop
operations waste a ton of time. Most of the complexity of the mainframe
sort/merge programs was in I/O management to keep the devices busy to the
maximum extent. The gold standard for sort/merge in the IBM world was a
third-party program called SyncSort. It cost a fortune but was well worth
it for the big shops.
So the short, bottom line answer is that the Unix way wasn't even possible
on the smaller mainframes and was too inefficient for the large ones.
-Paul W.
[-- Attachment #2: Type: text/html, Size: 3108 bytes --]
next prev parent reply other threads:[~2025-01-18 15:41 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-17 17:23 [TUHS] " Diomidis Spinellis
2025-01-17 19:10 ` [TUHS] " Bakul Shah via TUHS
2025-01-17 19:35 ` Marc Rochkind
2025-01-18 14:51 ` Diomidis Spinellis
2025-01-18 15:16 ` Larry McVoy
2025-01-18 15:40 ` Paul Winalski [this message]
2025-01-18 16:54 ` Marc Rochkind
2025-01-19 3:45 ` sjenkin
2025-01-18 16:00 ` Bakul Shah via TUHS
2025-01-18 16:25 ` Tom Lyon
2025-01-18 17:07 ` ron minnich
2025-01-18 19:39 ` Marc Rochkind
2025-01-17 20:07 ` John Levine
2025-01-18 4:46 ` Dave Horsfall
2025-01-17 18:12 Douglas McIlroy
2025-01-18 4:29 ` G. Branden Robinson
2025-01-21 21:53 Douglas McIlroy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CABH=_VQczwRqf2y97d6aoJb1KZYaTeT-X0P7+fJRqxvRrHXY1g@mail.gmail.com' \
--to=paul.winalski@gmail.com \
--cc=lm@mcvoy.com \
--cc=tuhs@tuhs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).