정보는 비트와 컨텍스트로 이루어진다. 우리가 작성한 C언어 파일들은(예를 들어 hello.c) 텍스트 파일로 저장된다. 이는 0 or 1로 이루어진 비트들의 연속으로, 이는 *바이트(Byte)라는 8비트 단위로 구성된다. 각각의 바이트가 텍스트 문자들을 나타내는 식.
일전의 과정으로 hello.c 소스 프로그램은 컴파일 시스템에 의해 hello라는 실행가능한 목적파일로 번역되어 디스크에 저장되었다. \*쉘을 통해 이 실행파일을 유닉스 시스템에서 실행해 보자.linux>./hellohello, worldlinux>쉘은 커맨드라인 인터
프로그램의 인코딩📜 p1.c 와 p2.c란 파일 두 개를 유닉스 커맨드라인을 통해 컴파일해보자. >linux> gcc -Og -o p p1.c p2.c gcc: 컴파일러를 의미. gcc는 리눅스의 기본 컴파일러이다. 간단히 cc로도 호출 가능 -Og: 컴파일 동
산술연산과 논리연산 ➕➖ 어제 정보에 접근하고, 간단한 데이터 이동 인스트럭션에 대해 알아봤으니, 이젠 한걸음 더 나아갈 차례다. 다양한 연산이 어떤 형태를 띄고 있는지, 어떠한 인스트럭션들이 있는지 자세히 알아보자. 유효주소 적재(Load Effective Addr
조건 코드 사용하기 어제 공부했던 비교 및 시험 인스트럭션의 친구인 Set 인스트럭션이다. Set 인스트럭션은 하나의 오퍼랜드를 목적 오퍼랜드로 가지고, 조건 코드 레지스터의 특정 비트를 검사하여 조건을 판단하고, 목적 오퍼랜드나 목적 오퍼랜드의 메모리 위치에 참 -
지금까지의 대부분의 예제에서는 레지스터에 저장할 수 있는것 이상의 지역저장소를 요구하지 않았다. 하지만 때때로 지역 데이터가 메모리에 저장되어야 하는 경우가 있다. 이 경우들의 공통점으론지역 데이터 모두를 저장하기에는 레지스터의 수가 부족하다.지역변수에 연산자 '&'가
예외상황 ⚠️ 예외상황은 어떤 프로세서 상태의 변화에 대한 대응으로, 제어흐름의 갑작스런 변화이다. 이러한 상태 변화는 이벤트라고도 부른다. 이벤트는 인스트럭션들의 실행에 직접적으로 관련이 있을 수도(ex. 산술 오버플로우), 혹은 없을 수도(ex. 시스템 타이머 정지
클라이언트-서버 프로그래밍 모델 🛤️ 모든 네트워크 응용 프로그램은 클라이언트-서버 모델
소켓 인터페이스 💡 소켓 인터페이스는 함수들의 집합으로서, Unix I/O 함수들과 함께 네트워크 어플리케이션을 구축하는 데에 사용된다. 이는 Unix, 윈도우, 매킨토시와 같은 대부분의 현대 시스템에서 구현되어 있다. 소켓 인터페이스를 기반으로 한 전형적인 네트워
동시성 프로그램을 만드는 가장 간단한 방법으로, fork, exec, waitpid와 같은 함수를 사용한다.여러 개의 별도 프로세스를 두어 개별로 동작시키며 동시성을 구현한다.각각의 프로세스가 독립적으로 실행되므로, 한 프로세스의 오류나 충돌이 다른 프로세스에 영향을