Unable to understand a definition of an instruction in a compiler schedule
I lent my copy of Cooper and Torczon to someone and never got it back, so I can't look up the context.  (It's a good book in general (which is why I didn't get it back)).

The definition of instruction here is unusual.  It corresponds more closely to what you might expect in a Very Long Instruction Word (VLIW) computer or in horizontal microcode.

In a VLIW machine, each instruction is made up of a small fixed number of independent operations.  A typical example would be something like: at most one branch instruction, at most two memory operations, and at most two arithmetic operations.  So you'd expect each instruction to be made up of five operations (some of which might be "no-ops").  So there are going to be two constraints here, and the definition of instruction given by Cooper and Torczon has not yet taken into account those constraints.  (I suspect that they will start discussing the constraints in the pages just after page 645).

To be more specific: a VLIW instruction is a set of operations that can be executed simultaneously/concurrently.  The operations must be (1) independent of each other and (2) the hardware must have sufficient function units to execute all the operations in the set simultaneously.

Cooper and Torczon are probably about to introduce some list scheduling heuristics.  In list scheduling you assign a non-negative integer to each operation such that (1) the dependence dag $D$ is "satisfied" (for all directed edges $x \rightarrow y$, $S(x) \lt S(y)$).  And (2) the set of operations scheduled on each cycle is feasible given the available hardware.  For example, in a greedy list scheduling heuristic you would traverse the dependence DAG in some topological order placing each instruction at the earliest cycle which satisfies both conditions.