제 6 장 운영 체제 점 검사

리눅스 명령을 종종 테스트

소개

  • 얼리 어답터 램프 / LNMP 아키텍처

  • 리눅스 + 아파치 (Nginx에) + mysql을 + PHP / 파이썬

  • 이제 마이크로 아키텍처 서비스 컨테이너 기술

왜 리눅스입니까?

  • 대부분의 엔터프라이즈 애플리케이션은 리눅스 서버에서 실행

  • 리눅스 서버의 능력

  • 리눅스 운영 원칙 및 일반적인 도구 알아보기

  • 디버깅 및 문제 해결을 위해 파일, 프로세스, 메모리 관련 명령을 볼 수 알아보기

리눅스 명령 사용법을 확인하는 방법

  • 남자

  • 정보

  • 도움
    • 예 : --help 핍
  • 사람이 다른 도구 tldr, 핍은 tldr 설치

파일 / 디렉토리 조작 명령

일반적인 파일 조작 도구

  • 대한 Chown / chmod를 /을 chgrp

  • LS / RM / CD / CP / MV / 터치 / / LN (소프트 링크와 하드 링크)의 이름 등

  • / 위치 찾기 / 그렙 찾아 검색을 찾습니다
    • 예를 들면 : 찾을 수 있습니다. -name "* .pyc 파일"-delete

파일 뷰어

또는 로그 파일 뷰어

  • vi 에디터 / 나노

  • 고양이 / 헤드 / 테일의 파일을 볼 수

  • 더 / 덜 대화 형보기 파일

프로세스 작업 명령

일반적인 도구는 작업의 과정을 마스터하기

  • PS 체크 처리

  • 프로세스를 종료 죽일

  • 최고 / htop 모니터링 과정

메모리 조작 명령

일반적인 메모리 작업 도구를 마스터

  • 사용 가능한 메모리를 볼 무료
    • 각 열의 특정 의미를 이해
  • 메모리 누수 문제 해결

네트워크 작업 명령

일반적인 네트워크 도구를 마스터

  • ifconfig를 카드 정보를 볼 수

  • 포트 정보를 볼 lsof를 / NETSTAT

  • SSH / SCP 원격 로그인 / 사본. tcpdump를 패킷 캡처

사용자 / 그룹 작동 명령

일반 사용자 및 그룹 작업을 마스터

  • 은 useradd / usermod에

  • groupadd / groupmod

요약 :

  • 다중 목적을 숙지하기

시스템 스레드 및 프로세스 자주 질문 운영

스레드와 프로세스의 차이

프로세스와 스레드 비교

  • 캡슐화 과정 프로그램을 실행하는 것입니다, 리소스 예약 및 할당 시스템은 기본 단위이다

  • 스레드는 프로세스의 하위 프로세스의 동시, CPU 스케줄링 및 할당의 기본 단위 달성된다

  • 프로세스는 여러 스레드를 포함 할 수있다 스레드에 의존 과정 및 공유 프로세스 메모리

스레드로부터의 안전성

평 스레드 안전 어떤 작업인가?

  • 작동은 올바른 결과를 얻을 수 있도록, 다중 스레드 환경에서 사용하는 것이 안전합니다

  • 스레드가 스레드 안전 동작이 동시에 실행보다는 오히려 순차적으로 수행되는 것처럼 (I + = 1)

  • 쓰기 작업에 관한 일반적 경우 여러 스레드가 데이터 보안에 액세스하는 방법을 고려할 필요가

스레드 동기화 모드

스레드 동기화 방법을 알아, 어떻게 보안 스레드를 보장하기 위해

  • 뮤텍스 (잠금) : 상호 배제 메커니즘에 의해 다중 스레드를 방지하는 동시에 공통의 자원에 액세스

  • 동시에 여러 스레드가 같은 리소스에 액세스 스레드의 수를 제어 : 세마포어 (Semphare)

  • 이벤트 (신호)의 통지 수단에 의해 스레드 동기화 복수 채

프로세스 간 통신 방법

프로세스 또는 데이터 전송 신호 간의 프로세스 간 통신

  • 파이프 라인 / 익명 파이프 / 명명 된 파이프 (파이프)

  • 시그널 (신호)하려면 Ctrl + C는 사용자 프로그램 종료 신호를 이용하여 생성 SIGINT 등

  • 메시지 큐 (메시지)

  • 공유 메모리 (공유 메모리)

  • 세마포어 (세마포어)

  • 소켓 (소켓) : 가장 일반적인 방법은이 방법으로 웹 응용 프로그램을 사용하는 것입니다

평 다중 스레드를 사용하여

  • 스레딩 모듈

  • threading.Thread 클래스는 스레드를 만들 수 있습니다

  • 스레드를 시작 () 메소드를 시작할

  • () 조인과 나사 끝을 기다릴 수

import threading

lock = threading.Lock()

n = [0]

def foo():
    with lock:
        n[0] = n[0] + 1
        n[0] = n[0] + 1

threads = []
for i in range(5000):
    t = threading.Thread(target=foo)
    threads.append(t)

for t in threads:
    t.start()

print(n)

평 여러 프로세스를 사용하는 방법

평은 GIL의 CPU를 많이 사용하는 프로그램은 멀티 프로세스를 달성 할 수있다

  • 멀티 멀티 모듈

  • Multiprocessing.Process 클래스는 다중 프로세스를 구현
    • 일반적으로 GIL에 영향을 방지하기 위해, CPU를 많이 사용하는 프로그램에서 사용
#多进程
import multiprocessing

def fib(n):
    """worker function"""
    if n <= 1:
        return 1
    return fib(n-1) + fib(n-2)

if __name__ == '__main__':
    jobs = []
    for i in range(10, 20):
        p = multiprocessing.Process(target=fib, args=(i,))
        jobs.append(p)
        p.start()

운영 시스템 메모리 관리 메커니즘 일반적인 질문

현대 프로그래밍 언어는 일반적으로 가비지 수집 메커니즘이

페이징 메커니즘은 무엇입니까

효율적으로 단편화를 줄이고, 운영 체제의 메모리를 관리하기 위해

메모리 할당 관리 체계의 논리적 및 물리적 주소의 분리

프로그램이 고정 된 크기의 페이지 (페이지)의 논리 어드레스를 분할하는 동일한 물리적 어드레스 크기 프레임 (프레임)로 분할

하여 페이지 테이블에 해당하는 논리 주소와 실제 주소

분할 메커니즘은 무엇입니까

세그먼트는 일부 로직 코드 데이터 공유, 데이터 보호, 동적 링크 등의 요구를 충족하는 것입니다

논리 어드레스와 각 세그먼트의 내부를 통해 물리적 어드레스의 관계로부터 세그먼트 테이블 맵핑은 연속적인 메모리를 할당하고, 단락 사이에 개별로 할당

페이징과 세그멘테이션 차이점

세그먼트 대 페이징

페이지 뷰 넣어 전방 세그먼트의 메모리 사용률 포인트 이산 분배기구는 사용자의 관점에서이다 페이지 크기가 고정 데이터 보호, 데이터 분리 목적으로 관리 메커니즘은, 오퍼레이팅 시스템의 세그먼트 크기가 불확실한 결정 사용자 프로그램 결정

가상 메모리 란 무엇인가

프로그램이 메모리에 필요한 정보의 일부만을 실행할 때 지역의 원리에 하드 드라이브 정보에 사용되지 않은 메모리의 일부가되는으로

하드 디스크에 메모리의 임시 원치 않는 내용이 시스템은 가상 메모리라고, 실제 메모리 용량보다 훨씬 더 제공 할 것

메모리 지터 무엇입니까 (범프)

페이지의 자주 스케줄링 동작의 특성

자주 예약 페이지, 프로세스는 페이지 폴트 교체 페이지를 생성하고이 페이지를 다시 필요로 계속 계속

너무 많은 프로그램을 실행, 페이지 교체 정책은 좋지 않다, 프로세스를 종료하거나 실제 메모리를 증가

가비지 컬렉션의 평 원리?

  • 주요 레퍼런스 카운트 (단점 : 순환 참조가 해결 될 수 없다)

  • 태그 제거 및 도입 세대 복구 솔루션은 참조의 참조 카운트를 해결하기 위해

  • + 레이블 참조 카운트 기반 제거 및 복구 세대 보충

참조 카운트는 순환 참조의 문제를 해결할 수 없다

  • 두 개체는 지울 수 없습니다 서로 참조

  • 클리어 마크 (마크 및 스윕)

  • 세대 복구
    • 012 점 이중 연결리스트를 사용하여 각 세대의 세 세대
  • 교정 임계 값 태그

스레드 운동

멀티 스레드 파충류 작성

스레딩 모듈 평을 사용하는 방법

사용 평 모듈 스레딩은 멀티 스레드 파충류를 완료

요구 사항 1 : 스레드의 최대 수는 크롤 URL과 요구의 클래스 목록에 전달 될 수 있습니다

요구 사항 2 :이 클래스는 상속의 방법으로 치료 반응하는 방법을 제공 할 수있다

추천

출처www.cnblogs.com/xuzhaoping/p/11616779.html