본문 바로가기

반응형

차이점

(4)
멀티프로세싱(multiprocessing)과 멀티스레딩(multithreading)의 차이점 [ 운영체제(OS) 면접질문 2] why OS 관련 단골 질문 중 하나이다. 프로세스와 스레드의 차이점을 물어본 후에 깊게 들어올 수 있는 질문이라고 생각한다. 둘 다 컴퓨팅의 효율성을 위한 기법[병렬 처리]이다. 멀티 프로세싱은 OS의 관점에서 프로세스를 여러개 운영하는 방법이고 멀티 스레딩은 하나의 프로세스에서 내부 기능을 동시에 실행시키는 방법이다. 현대의 하드웨어는 다중 CPU, 다중 코어를 지원하기에 병렬 처리와 관련된 지식은 상당히 중요하다. 배경 면접질문1에서는 스레드와 프로세스의 차이점을 살펴보았다. 스레드는 프로세스에 속하는 단위로 프로세스는 하나이상의 스레드를 소유한다. 그리고 CPU는 스레드 단위로 작업을 처리한다. 현대의 프로그램은 많은 기능들을 제공해줘야 한다. 네트워크를 사용하고, 하드디스크에서 파일을 읽어오고,..
프로세스(Process)와 스레드(Thread)의 차이점. [ 운영체제(OS) 면접 질문 1] Why 운영체제 관련 면접 질문으로 첫 번째로 물어볼 수 있는 질문이다. 프로세스라는 개념은 상당히 중요한데 OS의 관점에서 하나의 "작업"단위가 되기 때문이다. 프로세스와 관련된 정보(혹은 정책)들만으로도 다른 면접 질문으로 빠르게 뻗어나갈 수 있다. 1. 프로세스의 상태 2. CPU 스케줄링 정책 3. 스레드 4. 멀티 프로세스와 멀티 스레드 5. 프로세스에 대한 세부적인 정보(PCB) 6. 컨텍스트 스위칭 등등 등등.. 그렇기에 해당 질문을 통해 프로세스가 무엇인지, 스레드는 무엇인지 잘 설명할 수 있어야 한다. 해당 질문에 아쉬운 답변을 한다면 OS 파트에서 더 이상의 질문이 들어오지 않고 다음 섹션(프로그래밍, 네트워크, 보안, DB 등등으로 넘어가게 될 수 있다.) 나의 답변 프로세스와 스레드..
프로시저(procedure) 함수(function) 메서드(method)의 차이점 [프로그래밍 면접 질문 1] why 크게 중요한 질문은 아닐 수 있다. "기능"과 관련해서 같은 의미를 가지는게 아닌가? 싶은 용어들이다. 3개의 용어가 비슷비슷하게 사용되는 것 같지만 맥락에 따라서 다르게 사용된다. 3가지 용어를 어떤 관점에서 구분하는지에 대해서 물어볼 수 있는 좋은 질문이라 생각한다. [ 다만 중요성은 낮다고 생각하는 편 ] Subprogram & Subroutine 세 가지 용어 모두 "프로그램의 일부"라는 개념에서 묶어낼 수 있다. 시스템을 구성하는 일부의 로직을 의미하는 것이다. 시스템의 작은 기능이라는 관점에서 보면 3가지 용어 모두 같지만 기능이 가지는 특성들로 파악하면 3가지 용어 모두 다르게 사용될 수 있다. 서브 프로그램, 서브루틴, 자료구조 등등은 복잡한 문제를 해결하기 위해 더 작은 문제로 분..
클래스(class), 객체(Object), 인스턴스(Instance)의 차이점. [ Java & OOP 면접 질문1] Why 대부분의 시스템이 객체지향 개발론을 통해 개발된다. 그 이유는 복잡성을 제어하면서 유지보수성을 높여야 하기 때문이다. 유지보수성을 왜 높여야 할까? 그 이유는 소프트웨어를 다루는 프로그래머의 가치가 컴퓨터의 가치보다 높기 때문이다. 기존의 시스템을 이해하고 수정 및 확장하기가 쉬울수록 해당 시스템에 들어가는 유지보수 비용이 낮게 측정된다. OOP는 비즈니스의 관점에서 보면 프로그래머로 하여금 비용 효율적으로 시스템을 개발하게 해주는 방법이다. OOP는 유지보수성을 위해서 기존의 개발 패러다임(절차지향 패러다임)에서 한 단계 발전한 패러다임이다. 객체지향 개발론에도 절차지향적인 부분이 존재하지만 "객체"를 중심으로 사고해야 한다는 점에서 기존의 절차지향적인 개발 방법론과는 다른 사고방식으로 이끌어준..

반응형