As far as pictured in the second image, your windows consist of only 4 Vertices. Maintain the shape they have with a high stepped SubD, you'd need to add at least 4 more vertices to each window, one per edge. Afterwards use the Looptools- Addon to give them a perfect circle shape.
As you see, a 2x subdivided Plane with windowlike holes, just like yours.
to keep the shape they inherent, I added loopcuts to add the required 4 extra Vertices to keep an overall quad only mesh, but it works as well if you just want to add the Vertices.
I then selected al the windows (make sure that you're in Edge Select Mode so you can do all at once), right clicked Looptools>Circle.
In Object Mode with decreased SubD resolution the windows still have the same shape as before.
Notice that due to the extra Edge Loops, your mesh may get a bit inconsistent at those parts, that's because of the cylindric shape your model has. To adress this, just duplicate your mesh before all of the previous steps to use it as a Shrinkwrap Modifier target for your lowresolution Mesh afterwards. You can immediatly apply this modifier.
In general topology is key when working with SubD. To keep the overall shape of the Cockpit as it is when using a 3x SubD, you have to change the topology a bit. To round the edges, mark them with Bevel Weight and add a Loopcut around it (Select all the sourrounding Faces and inset them) . Add a Bevel Modifier with Limited Method set to Weight and approximatly 2 Segments before the SubD.
I got these Results from doing this (Left: Before, Right: After):
If you want the edges to be less sharp, just change the Bevel Amount of the Modifier.
The Topology looks like this (Again, Left: Before, Right: After):
just in case I added the blend file.
Edited:
The direct Cause for the weird shading is the autosmooth modifier. I'd suggest you just use Shade Smooth
With Autosmooth:
Without:
I hope this helps