Ulimit 탐구

이준원·2024년 1월 21일

Linux

목록 보기
1/1

'ulimit -aH' : 리눅스 시스템에서 사용자나 프로그램이 사용할 수 있는 리소스의 최대 한계

  1. Core file size: 프로그램이 비정상적으로 종료될 때, 그 원인을 분석하기 위해 생성되는 '코어 덤프 파일'의 최대 크기

    • 코어 덤프 파일은 프로그램이 충돌했을 때의 메모리 상태와 같은 정보를 담고 있다.
  2. Data seg size: 프로그램이 사용할 수 있는 데이터 세그먼트의 최대 크기

    • 데이터 세그먼트는 변수와 같은 데이터를 저장하는 공간
  3. Scheduling priority: 프로그램이 CPU 시간을 얼마나 우선적으로 사용할 수 있는지를 나타냅니다. 숫자가 낮을수록 더 높은 우선순위를 갖습니다.

  4. File size: 생성할 수 있는 파일의 최대 크기입니다.

  5. Pending signals: 한 사용자가 한 번에 받을 수 있는 신호(시스템에서 프로세스에게 보내는 알림)의 최대 개수입니다.

  6. Max locked memory: 프로세스가 메모리에 '잠금'을 걸어 둘 수 있는 최대 크기입니다. 잠긴 메모리는 운영체제에 의해 스왑되지 않습니다.

  7. Max memory size: 프로세스가 사용할 수 있는 메모리의 최대 크기입니다.

  8. Open files: 한 프로세스가 열 수 있는 파일의 최대 개수입니다.

  9. Pipe size: 파이프(프로세스 간 통신을 위한 메커니즘)에 데이터를 넣을 수 있는 최대 크기입니다.

  10. POSIX message queue: 프로세스 간 메시지를 전달하는 큐의 최대 크기입니다.

  11. Real-time priority: 실시간으로 처리되어야 하는 작업의 우선순위입니다. 일반적인 작업보다 높은 우선순위를 갖습니다.

  12. Stack size: 프로세스의 스택(함수 호출, 지역 변수 저장 등에 사용되는 메모리 영역)의 최대 크기입니다.

  13. CPU time: 프로세스가 CPU를 사용할 수 있는 최대 시간입니다.

  14. Max user processes: 한 사용자가 실행할 수 있는 프로세스의 최대 개수입니다.

  15. Virtual memory: 프로세스가 사용할 수 있는 가상 메모리의 최대 크기입니다.

  16. File locks: 한 프로세스가 걸 수 있는 파일 잠금의 최대 개수입니다.


'프로세스'란

  • 실행 중인 프로그램의 인스턴스
  • 컴퓨터에서 프로그램이 실행되면, 운영 체제는 그 프로그램의 복사본을 메모리에 로드하고, 이 실행 중인 복사본이 '프로세스'
프로세스 특징:
  1. 독립적인 실행 단위: 각 프로세스는 독립적으로 실행되며, 다른 프로세스와 메모리나 기타 리소스를 공유하지 않습니다(단, 스레드나 다른 고급 기술을 사용할 때는 예외가 있을 수 있습니다).

  2. 메모리 할당: 프로세스는 실행을 위해 시스템으로부터 메모리를 할당받습니다. 이 메모리에는 코드, 실행 데이터, 스택 등이 포함됩니다.

  3. 실행 상태: 프로세스는 생성, 실행, 대기, 종료 등의 여러 상태를 가질 수 있습니다.

  4. 시스템 리소스의 사용: 프로세스는 CPU 시간, 메모리 공간, 파일 핸들과 같은 시스템 리소스를 사용합니다.

  5. 프로세스 ID (PID): 운영 체제는 각 프로세스에 고유한 식별자를 할당합니다. 이를 통해 프로세스를 관리하고, 서로 구분합니다.


'인스턴스'란

  • 프로그램의 인스턴스:
    • 프로그램의 인스턴스는 하드 드라이브에 저장된 프로그램이 메모리에 로드되어 실행 중인 상태
    • 예를 들어, 텍스트 편집기 프로그램이 있다면, 이 프로그램을 두 번 실행하면 메모리에 두 개의 '텍스트 편집기 프로그램 인스턴스'가 생성됩니다.

0개의 댓글