강좌 목록으로 돌아가기
AI031 전문가

컴퓨터 시스템: 프로그래머의 관점 (글로벌 에디션)

컴퓨터 시스템이 프로그램을 실행하고 정보를 저장하는 방식에 대한 종합적인 심층 분석입니다. 이 과정은 고수준 프로그래밍과 하드웨어 기반의 구조 사이의 간격을 메우며, 머신 레벨 표현, 프로세서 아키텍처, 메모리 계층 구조 및 동시 프로그래밍을 다룹니다.

5.0
36.0h
955 학생들
12개 레슨
0 좋아요
인공지능
수강 시작하기

강좌 개요

콘텐츠 요약

컴퓨터 시스템이 프로그램을 실행하고 정보를 저장하는 방식에 대한 종합적인 심층 분석. 이 과정은 고수준 프로그래밍과 기반 하드웨어 사이의 간극을 메우며, 머신 레벨 표현, 프로세서 아키텍처, 메모리 계층 구조, 동시 프로그래밍을 다룹니다.

하드웨어-소프트웨어 인터페이스를 이해함으로써 시스템 프로그래밍의 예술을 마스터하세요.

저자: Randal E. Bryant, David R. O'Hallaron

감사의 말: 카네기 멜론 대학교 15-213 강의의 수강생 및 강사들에 의해 지원됨. Manasa S.와 Mohit Tahiliani의 기여도 포함.

학습 목표

  1. 시스템 내에서 비트와 맥락을 사용하여 정보가 어떻게 표현되는지 식별하기.
  2. 소스 코드에서 실행 파일까지의 컴파일 시스템의 네 단계를 추적하기.
  3. 하드웨어의 조직 구조와 저장 장치의 계층적 특성을 설명하기.
  4. 십진수, 이진수, 16진수 표기법 간 변환하고 머신 레벨 주소 지정(엔디언)을 설명하기.
  5. C에서 비트 수준 및 논리 연산을 수행하고 산술 시프트의 결과를 예측하기.
  6. 정수 인코딩을 분석하여 오버플로우 취약점과 형변환 오류를 식별하기.
  7. 분석: C 문구(루프, 분기, 절차)와 x86-64 어셈블리 명령어 간의 매핑 관계를 이해하기.
  8. 해체: 런타임 스택을 분석하여 매개변수 전달, 로컬 변수 저장, 재귀 호출 관리 방식을 설명하기.
  9. 평가: 다양한 데이터 구조의 메모리 레이아웃을 분석하고 정렬 규칙을 적용하여 전체 저장 요구량 계산하기.
  10. Y86-64 프로그래머가 볼 수 있는 상태를 정의하고 명령어를 바이트 시퀀스로 인코드/디코드하기.

수업

Lesson