As embedded computers become more and more ubiquitous, it is not uncommon that a single device contains several of them. For example, modern cars contain about 70 different computers and this high number starts becoming a problem. The solution could be the use of multi-core platforms, where a single multi-core CPU can easily run multiple applications in parallel. With multi-cores, the challenge is to ensure that applications of different criticality (safety integrity level) do not influence each other similarly as when they run on separate computers. It must be ensured that non-safety applications cannot negatively influence computations and timing of safety functionality. What is required is predictable performance and it can be achieved by introducing a modified (real-time) execution model and modified policy on access to critical shared resources (like memories, caches and on-chip buses). To achieve reasonable level of safety, it is not only sufficient to ensure predictable performance, but one must also make the system secure, i.e. resistant against malevolent activities and attacks. We study interactions between safety and security techniques in order to find trade-offs and synergies between the, so far quite separate, worlds of safety and security.