Linux/리눅스 시스템 관리

멀티태스킹(multitasking)과 멀티유저(multi-user)

Linuxpia4U 2024. 9. 30. 05:27
반응형

멀티태스킹(multitasking)과 멀티유저(multi-user) 

리눅스는 멀티태스킹(multitasking)멀티유저(multi-user) 기능을 지원하는 운영 체제로, 이러한 기능을 통해 여러 작업을 동시에 처리하고, 여러 사용자가 시스템에 접근할 수 있습니다. 각각의 개념을 자세히 설명하겠습니다.

멀티태스킹(Multitasking)

멀티태스킹은 컴퓨터가 동시에 여러 작업(프로세스)을 처리할 수 있는 기능을 의미합니다. 리눅스에서 멀티태스킹을 구현하는 방식은 선점형 멀티태스킹(preemptive multitasking)입니다.

선점형 멀티태스킹

선점형 멀티태스킹은 운영 체제가 각 프로세스에 할당된 CPU 시간을 관리하며, 한 프로세스가 너무 오래 실행되지 않도록 강제로 중단하고 다른 프로세스에 CPU를 할당하는 방식입니다. 이 방식 덕분에 여러 프로그램이 동시에 실행되는 것처럼 보입니다.

리눅스에서의 멀티태스킹 관련 개념

  • 프로세스(process): 실행 중인 프로그램을 의미합니다. 각 프로세스는 독립적인 메모리 공간을 할당받고 실행됩니다.
  • 스레드(thread): 프로세스 내에서 독립적으로 실행되는 작업 단위입니다. 하나의 프로세스가 여러 스레드를 가질 수 있으며, 스레드는 메모리를 공유합니다.
  • 스케줄링(scheduling): 리눅스 커널은 프로세스 스케줄러를 통해 각 프로세스에게 CPU 시간을 할당합니다. 스케줄러는 우선순위와 기타 요인에 따라 어떤 프로세스가 언제 실행될지 결정합니다.

예시 명령어

리눅스에서 여러 작업이 동시에 실행되는 것을 확인하거나 관리하려면 다음 명령어들을 사용할 수 있습니다:

  • top: 현재 실행 중인 프로세스 목록과 CPU, 메모리 사용량을 실시간으로 표시합니다.
  • ps: 현재 실행 중인 프로세스 목록을 확인합니다.
  • htop: top과 유사하지만, 더 사용자 친화적인 인터페이스를 제공합니다.
# 현재 실행 중인 프로세스 목록을 확인
ps aux

'ps aux' 실행 결과

멀티유저(Multi-user)

멀티유저는 여러 사용자가 동시에 한 시스템에 접근하고 작업을 수행할 수 있는 기능을 의미합니다. 리눅스는 멀티유저 환경을 기본적으로 지원하며, 각 사용자는 독립적인 계정을 가지고 있습니다.

주요 개념

  • 사용자 계정(user account): 각 사용자는 고유한 계정을 가지고 있으며, 이를 통해 시스템에 로그인하고 리소스에 접근할 수 있습니다.
  • 사용자 권한(user permissions): 리눅스에서는 파일 및 디렉터리에 대한 접근 권한을 통해 사용자가 할 수 있는 작업을 제한할 수 있습니다. 일반적으로 세 가지 권한이 있습니다.
    • 읽기(read): 파일을 읽을 수 있는 권한.
    • 쓰기(write): 파일을 수정하거나 삭제할 수 있는 권한.
    • 실행(execute): 파일을 실행할 수 있는 권한.
  • 루트 사용자(root user): 시스템 관리자는 루트 계정을 사용하여 시스템의 모든 리소스에 접근하고 제어할 수 있습니다. 루트 사용자는 다른 사용자의 작업이나 시스템 설정을 관리할 수 있습니다.

사용자 관리 명령어

  • useradd: 새로운 사용자 계정을 추가합니다.
  • usermod: 기존 사용자 계정을 수정합니다.
  • passwd: 사용자 비밀번호를 설정하거나 변경합니다.
  • su: 다른 사용자 계정으로 전환합니다.
  • sudo: 루트 권한으로 명령어를 실행합니다.
# 새로운 사용자 추가
sudo useradd newuser

# 비밀번호 설정
sudo passwd newuser

# 루트 사용자로 전환
su -

루트 사용자로 전환(프롬프트가 #로 바뀜)

다중 사용자 접속

여러 사용자가 동일한 시스템에 동시에 접근할 수 있으며, 각 사용자는 자신의 세션에서 작업을 독립적으로 수행합니다. 이를 통해 여러 사용자가 같은 시스템 리소스를 공유하면서도 서로 간섭 없이 작업할 수 있습니다. 예를 들어, 여러 사용자가 SSH를 통해 원격으로 리눅스 서버에 접속하여 각각의 작업을 수행할 수 있습니다.

멀티태스킹과 멀티유저의 결합

리눅스는 멀티태스킹과 멀티유저 기능을 동시에 제공하므로, 여러 사용자가 동시에 시스템에 접근해 여러 작업을 수행하는 상황에서도 효율적으로 자원을 관리할 수 있습니다. 시스템은 각 사용자가 요청한 작업을 동시에 처리하며, 필요한 리소스를 적절히 분배합니다.

정리

  • 멀티태스킹: 리눅스는 선점형 멀티태스킹을 통해 여러 작업을 동시에 처리하며, 각 작업은 독립적으로 실행됩니다.
  • 멀티유저: 리눅스는 여러 사용자가 동시에 시스템에 접근할 수 있도록 하며, 각 사용자에게 독립적인 환경과 권한을 부여합니다.

이러한 기능 덕분에 리눅스는 서버 운영, 클라우드 환경, 대규모 멀티유저 시스템에 적합한 운영 체제로 자리 잡았습니다.

반응형