Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

몇가지 보완점 입니다. #32

Open
mincheolsung opened this issue Sep 11, 2022 · 1 comment
Open

몇가지 보완점 입니다. #32

mincheolsung opened this issue Sep 11, 2022 · 1 comment

Comments

@mincheolsung
Copy link

  1. 프로레스와 스레드의 차이를 설명해보세요.
    스레드는 운영체제의 스케쥴러에 의해 관리되는 실행단위 입니다.
    프로세스는 저장장치에 있는 프로그램이 메모리로 로드됐을때의 하나의 인스턴스입니다. 프로세스는 쓰레드에 의해서 실행됩니다.
    하나의 프로세스에는 여러개의 쓰레드가 존재 할 수 있으며 이 쓰레드들은 해당 프로세스에 할당된 자원들을 공유 할 수 있습니다. 프로세스는 각자의 메모리 주소 영역을 가지며 운영체제의 통제 하에 다른 프로세스와 자원을 공유하거나 독점 할 수 있습니다.

  2. 컨텍스트 스위칭에 대해 설명해보세요.
    시간 공유 운영체제 (time sharing operating system)에서는 제한된 실행자원 (e.g., CPU, memory)이 여러개의 프로세스를 번갈아가면서 실행합니다. 예를 들어 단일코어 환경에서는 여러개의 프로세스들이 번갈아가면서 cpu 코어의 실행시간을 할당받습니다. 이때 cpu 코어에서 실행중이던 프로세스가 다른 프로세스로 변경될때를 컨텍스트 스위치라고 하고 이때 여러가지 추가적인 오버헤드가 필요합니다. 예를들어 tlb flush, cache flush, interrupt handling overhead 등등이요. cpu가 아무런 일을 하지 않기때문에 성능저하가 일어난다는 것은 정확하다고 볼 수 없습니다.

  3. 동기와 비동기의 차이.
    동기 (블로킹)은 호출 메서드가 데이터와 제어 (control)을 피호출 메서드에게 넘깁니다. 그래서 호출 메서드는 비호출 메서드가 리턴될때까지 실행을 멈춥니다 (블로킹). 반면 비동기는 호출 메서드가 데이터만을 피호출 메서드에게 넘기기때문에 피호출 메서드가 리턴하기 전이라도 호출 메서드는 그대로 실행이 가능합니다. 비동기에서는 주로 polling이나 interrupt를 이용합니다. "동기 논블로킹" 는 모순으로 보입니다.

  4. 가상 메모리에 대해 설명해보세요.
    실제 메모리크기보다 더 큰 메모리 영역을 사용할 수 있게 해주는 것 외에도 대표적인 장점이 있는데요, 프로세스간에 고립화 (isolation)가 가능하다는 것입니다. MMU는 하드웨어이고 OS는 MMU가 가상메모리 주소의 번역을 돕는 역할입니다.

@ksundong
Copy link
Owner

@mincheolsung
안녕하세요~ 기여 감사드립니다~
혹시 가능하시다면 PR 요청을 해주실 수 있을까요~?

동기 논블로킹은 모순이나 충분히 가능한 상황으로 보이는데요.
모순이라면 왜 모순인지 근거가 있다면 더 좋지 않을까 싶습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants