CS

    [운영체제] 좀비(Zombie) 프로세스와 고아(Orphan) 프로세스

    ✏️ 좀비(Zombie) 프로세스와 고아(Orphan) 프로세스 좀비(Zombie) 프로세스는 자식 프로세스가 부모 프로세스보다 먼저 종료된 프로세스를 의미합니다. 고아(Orphan) 프로세스는 부모 프로세스가 자식 프로세스보다 먼저 종료된 프로세스를 의미합니다. 💡 프로세스의 Creation & Termination 부모 프로세스는 fork() 시스템콜을 통해 새로운 자식 프로세스를 생성합니다. fork() 시스템콜을 통해 생성된 자식 프로세스는 부모 프로세스를 복제하기 때문에 부모와 동일한 형태를 가집니다. 그리고 이후에 exec() 시스템콜을 호출하면, 생성한 프로세스의 메모리 공간을 새로운 프로그램으로 대체할 수 있습니다. 이러한 프로세스들은 크게 2가지 방식으로 실행됩니다. Parent와 Chi..

    객체지향 프로그래밍 - OOP 상속(Inheritance) 이란?

    👀​ Study Goal 객체지향 프로그래밍(OOP) 상속 개념을 이해합니다. 상속의 필요성을 알아봅니다. 상속이 사용되는 사례를 코드로 작성해봅니다. ✏️ 상속(Inheritance) 이란? 상속(Inheritance)은 부모(Super) 클래스의 기능을 재사용(Reuse)하고 기능을 확장(Expansion)할 수 있는 객체지향 프로그래밍(OOP)의 특징입니다. 💡 상속은 왜(Why) 필요할까? 상속은 Super 클래스의 기능을 재사용하고, 확장할 수 있는 특징을 가지고 있습니다. 상속이 필요한 이유는 바로 재사용과 확장이라는 강력한 장점 때문입니다. 만약 상속이라는 개념이 존재하지 않는다면, 비슷한 기능을 구현할 때마다 동일한 코드를 작성해주어야 합니다. 객체지향적인 프로그래밍에 대해 처음 접해보시는..

    객체지향 프로그래밍 - OOP 캡슐화(Encapsulation) 이란?

    👀​ Study Goal 객체지향 프로그래밍(OOP) 캡슐화 개념을 이해합니다. 캡슐화의 필요성을 알아봅니다. 캡슐화가 사용되는 사례를 코드로 작성해봅니다. ✏️ 캡슐화(Encapsulation) 란? 캡슐화(Encapsulation)는 외부로부터 클래스의 정보를 감추고, 필드(field)와 메서드(method)에 대한 불필요한 접근을 막는 OOP 특징 중 하나입니다. 💡 캡슐화(Encapsulation)의 두 가지 측면 캡슐화(Encapsulation)에는 크게 2가지 측면이 있습니다. 1. 외부로부터 필드(field)와 메서드(method)에 대한 불필요한 접근을 막습니다. 2. 외부로부터 클래스의 구체적인 구현 내용을 감춥니다. 먼저, 필드와 메서드에 대한 불필요한 접근을 막아야 하는 이유를 예시를..

    객체지향 프로그래밍 - OOP 추상화(Abstraction) 이란?

    👀​ Study Goal 객체지향 프로그래밍(OOP) 추상화 개념을 이해합니다. 추상화가 사용되는 사례를 코드로 작성해봅니다. ✏️ 추상화(Abstraction) 란? 추상화(Abstraction)는 사물(Object)의 공통적인 특징을 하나의 개념으로 다루는 것을 의미합니다. ex) 개(Dog)와 고양이(Cat)를 동물(Animal)이라는 하나의 추상적인 개념으로 다룰 수 있습니다. 💡 추상화(Abstraction)의 예시(Example)는 무엇이 있을까? 객체지향 프로그래밍(OOP) 언어를 다루다 보면 추상화가 무엇인지 정확히는 모르더라도 명칭에 대해서는 많이 들어보았을 것입니다. 실제로 추상화를 적용하더라도 개념을 모르고 있는 상태라면, 추상화를 적용한지도 모르고 사용할 때가 많습니다. 위에 작성..