I was wondering if O.S. can act in such a way to hide from CPU what it is doing? I know that everything is computed only in CPU, but O.S. decides what that is, and keeps track of file system, etc. For example, CPU would not know if data it is processing is video streaming or web browsing, or encryption. And I am not referring here on homomorphic encryption (zero knowledge computing on encrypted data), but zero knowledge computing on actual data.
The CPU is where the code is executed so, no, you can't "hide" processing from it. At least, not if you have just a single CPU.
But if you have additional processing units that you can program in a safe way, then you can protect some processing from the machine's CPU.
Smartcards are an exemple of such offloading: they are programmed in advance with the keys that will let them do their job. Later, they can be inserted into untrusted system and still maintain the integrity of process they were designed for. For instance, you can use a smartcard to store a RSA private key and allow the smartcard to be used from an untrusted computer while still retaining reasonable trust that these keys haven't been leaked.
It would be difficult for the OS to hide what is happening considering the CPU will process the instructions. Now, you may be able to hide date from certain threads within a CPU by explicitly stating which core you want the program to execute or to maintain a non symmetric multi-processing program. But, this all relies on which attack type you're trying to employ.
I don't think it is possible to mitigate any attack that "record" the CPU activities and "replay" it.
Nevertheless, it is possible to use distributed processing to break data process to multiple system to hide the big picture.
(update) There is an answer that mentioned Smart Card Technology and Security. I will reserved my view. Because all the mentioned securities are not mean to mitigate "CPU process replay".