본문 바로가기

리눅스 커널의 구조와 원리/10. 프로세스 스케줄링

(3)
[Linux kernel] __switch_to (RISC-V) The following routine performs the context switching: ENTRY(__switch_to) /* Save context into prev->thread */ li    a4,  TASK_THREAD_RA add   a3, a0, a4 add   a4, a1, a4 REG_S ra,  TASK_THREAD_RA_RA(a3) REG_S sp,  TASK_THREAD_SP_RA(a3) REG_S s0,  TASK_THREAD_S0_RA(a3)  // x8 REG_S s1,  TASK_THREAD_S1_RA(a3)  // x9 REG_S s2,  TASK_THREAD_S2_RA(a3)  // x18  REG_S s3,  TASK_THREAD_S3_RA(a3)  // x19..
[리눅스커널] 스케줄링(scheduling)에 대해서 알아보기 여러분들은 리눅스 시스템이 탑재된 휴대폰이나 라즈베리파이를 쓰면 동시에 여러 프로그램을 실행할 수 있습니다. 휴대폰을 보면 다양한 프로그램이 동시에 실행하는 것을 확인할 수 있습니다. 예를 들면 브라우저를 실행하면서 음악을 듣거나 메신저를 하면서 어플리케이션을 다운로드 할 수 있습니다. 그래서 사람들은 여러 프로세스들이 동시에 CPU에서 실행한다고 느낄 수 있습니다. 하지만 CPU는 여러 개의 프로세스를 절대로 동시에 실행할 수는 없습니다. 리눅스 커널을 포함한 다양한 운영체제에서 스케줄링과 멀티 태스킹 기법이 생겨난 이유는 다음과 같습니다.CPU는 한 순간에 한 개의 프로세스의 코드만을 실행할 수 있습니다. 여러 개의 프로세스들이 효율적으로 번갈아 CPU에서 실행할 수 있게 규칙을 부여하고 프로세스들을..
[리눅스커널][스케줄링] 스케줄링(scheduling)/스케줄러(schedule)란 무엇일까? 스케줄링(scheduling)/스케줄러(schedule)란 무엇일까? 여러분들은 리눅스 시스템이 탑재된 휴대폰이나 라즈베리파이를 쓰면 동시에 여러 프로그램을 실행할 수 있습니다. 휴대폰을 보면 다양한 프로그램이 동시에 실행하는 것을 확인할 수 있습니다. 예를 들면 브라우저를 실행하면서 음악을 듣거나 메신저를 하면서 어플리케이션을 다운로드 할 수 있습니다. 그래서 사람들은 여러 프로세스들이 동시에 CPU에서 실행한다고 느낄 수 있습니다. 하지만 CPU는 여러 개의 프로세스를 절대로 동시에 실행할 수는 없습니다. 리눅스 커널을 포함한 다양한 운영체제에서 스케줄링과 멀티 태스킹 기법이 생겨난 이유는 다음과 같습니다.CPU는 한 순간에 한 개의 프로세스의 코드만을 실행할 수 있습니다. 여러 개의 프로세스들이 효..