그림으로 쉽게 배우는 운영체제 - 섹션5 컴파일과 프로세스, 중간정리 (쉬어가기)

이지섭·2023년 6월 27일
0

섹션5 쉬어가기 - 컴파일과 프로세스, 중간정리

  • 프로그래밍 언어는 컴파일 언어와 인터프리터 언어로 나뉜다.
    • 컴파일 언어
      • 개발자가 코드를 작성하고 컴파일을 거쳐 0과 1의 기계어로 된 실행파일 생성
      • 컴파일 과정에서 문법 실수 검사
      • CPU에서 바로 실행 가능한 기계어로 실행파일이 만들어져 속도가 빠르다
      • C, C++, C#
    • 인터프리터 언어
      • 미리 컴파일하지 않고, 실행 시 한줄씩 해석하여 실행
      • 실행시 오류가 발생할 수 있고, 컴파일언어와 비교하여 느린 편
      • JS, Python, Ruby
    • 전처리기 → 컴파일러 → 어셈블러 → 링커 → 실행파일
    • exe 실행 시, exe 파일에 있는 코드영역과 데이터 영역을 가져와 프로세스에 넣고 빈 스택과 힙을 할당
    • PCB 생성 후 프로그램 카운터를 생성된 프로세스 코드영역의 첫번쨰 주소로 설정
  • 중간정리
    • 폰 노이만 구조 = CPU + RAM
    • 다중 프로세스를 위한 CPU 스케줄링 → 동기화 문제 발생
    • 동기화 문제 발생 → 세마포어와 모니터
    • 세마포어와 모니터 → 프로세스가 공유자원을 점유 → 교착상태 발생
    • 교착상태 발생 → 검출하여 해결
profile
Stop thinking. Just do it.

0개의 댓글

관련 채용 정보