목록시스템|서버|네트워크 (17)
따..딱히 공부하려고 포스팅하는 건 아니니까..!
정의 프로세스의 가상 주소 공간에 존재하는 실행 흐름의 단위(함수) 특징 1. 실행을 독립적으로 유지하기 위해 스택과 레지스터만 공유하지 않고, 나머지 힙, 코드, 데이터 영역 등을 공유한다. 즉, 한 쓰레드가 프로세스 자원을 변경하면 다른 쓰레드도 변경 결과를 볼 수 있다. 2. 실행/종료 순서를 알 수 없다. 3. 프로그램 외부에서는 보이지 않는다. 구조
1. 프로세스(Process)1) 정의 실행중이거나 실행 준비 중인 프로그램 개체 CPU 시간이나 메모리 등, 시스템 자원이 할당되는 독립적인 개체 2) 특징 별도의 주소 공간에서 실행된다. 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 2. 프로세스의 구성요소 코드영역 함수, 제어문, 상수 등 프로그램 명령이 존재하는 곳 하위 데이터영역 Data : 초기화된 전역, 정적 변수 BSS : 초기화되지 않은 전역, 정적 변수 힙 영역 (↓) 동적 할당 시 할당되는 메모리 영역. 메모리 주소 값에 의해 창조된다. ... 스택영역 (↑) 지역, 매개 변수, 리턴값 등 임시 할당시 할당되는 메모리 영역. 프로그램 도중 얼마나 사용될 지 몰라 거꾸로 채워나간다. 상위 3. 프로세스 스케쥴링1) 프로세스 상태 ..
버퍼 주 기억장치의 일부 데이터가 일시적으로 존재하는 곳 버퍼링 CPU와 IO의 처리속도가 달라 CPU가 효율적으로 다른 일을 하기 어렵다. 그러므로 CPU가 다른 작업을 계속할 수 있도록 읽고 쓰는 데이터들을 임시 저장하여 효율을 높이는데, 이 방법을 버퍼링이라고 한다.
1. 운영체제(Operating System) S/W, H/W을 관리하고 사용자에게 편의(UI 등)를 제공하고, 응용프로그램의 토대를 제공하는 유일한 프로그램을 말한다. 1) H/W 자원 CPU(프로세서), 기억장치(주/보조기억장치, 가상메모리), 입출력장치 등 2) S/W 자원 File system(문서, 음악, 그림 등), 프로그램, 데이터 등 2. 운영체제의 역사1) 일괄처리 시스템 한번에 하나의 프로그램이 수행된다. 비슷한 요구를 일괄적으로 수행한다. 단점 : 입출력 장치의 속도가 느려 CPU가 쉬는 경우가 많다. 2) 다중 프로그래밍 시스템 여러 프로그램을 동시에 처리(= 메모리에 적재)한다. 일괄처리 시스템의 단점을 보완하기 위해 생겨났다. 하나의 프로그램이 대기 상태가 되면, 그 동안 다른 ..
인터넷이 되지 않는 상황에서 다른 컴퓨터와 파일을 공유하고 싶을 땐 어떡해야 할까요?svn이나 git을 사용하면 참 편리할 것 같은데... 인터넷 없이는 svn을 사용할 수 없을까요? 정답은 공유기를 사용하면 인터넷 없이도 svn을 사용할 수 있습니다.간단히 설명하자면, 공유기에서 공유기에 연결된 기기마다 내부 ip를 할당하는데 이를 이용하여 로컬 네트워크를 구성할 수 있습니다. 준비물 : 서버가 될 컴퓨터, 공유기(여기서는 iptime을 사용합니다), VisualSVN Server (64bit), TortoiseSVN (64bit) 1. 컴퓨터에 VisualSVN Server을 다운받고 TortoiseSVN을 다운받습니다. (서버 컴퓨터, 클라이언트 컴퓨터 모두) VisualSVN Server 다운 :..
가상 메모리(페이징 파일)은 물리적인 메모리 공간(RAM)외에 하드 디스크에 파일 형태로 따로 준비하는 가상의 메모리 공간이다. 한마디로, 부족한 시스템 메모리를 보조해주는 역할을 하는 메모리 공간이다. 사용되지 않는 내용들을 하드 디스크의 페이징 파일(가상메모리)로 옮겨 실제 메모리에 여유 공간을 확보한다. (실제 메모리와 가상 메모리 사이에서 데이터를 스왑) 자세한 내용은 직접 정리하는 것보다 더 좋은 글이 있어서 링크를 걸어둡니다 http://egloos.zum.com/sweeper/v/2988689
쓰레드는 프로세스 내에 존재하는 실행 단위이다. 즉, 프로세스의 메모리 구조와 비슷하거나 같다. 이를 토대로 쓰레드의 최대 개수에 대해 알아보고자 한다.스택과 힙의 최대크기에 대해 안다는 전제하로 진행하겠다. 스택과 힙에 대한 자세한 내용은 링크를 참고하도록 하자.http://bozeury.tistory.com/entry/%ED%9E%99Heap%EA%B3%BC-%EC%8A%A4%ED%83%9DStack%EC%9D%98-%EC%B5%9C%EB%8C%80-%ED%81%AC%EA%B8%B0 우선 쓰레드 하나를 생성해봤다.스택의 최대 크기를 1MB로 지정한 후에, 쓰레드 하나에 char를 1MB 이상 할당해봤다.(참고로 스택의 최대 크기를 200MB 정도로 크게 하면 abort()한다. 이는 다른 문제이므로 ..
프로그래밍을 하면서 스택 영역, 힙 영역이라는 말을 많이 들어봤을 것이다.스택이나 힙은 한 프로세스 내에 존재하는 메모리 영역인데, 이 스택과 힙 메모리 공간을 얼마나 할당할 수 있는지 알아보고자 한다. 위 그림은 번지에 따른 메모리 구조이다. 즉, 위에 있을 수록 주소가 높고(High Address) 밑에 있을 수록 주소가 낮다(Low Address).크게 코드 영역, 데이터 영역으로 나뉘고, 작게는 데이터 영역 내에서 힙, 스택으로 나뉜다. 하지만 처음부터 모든 메모리 공간을 사용하지는 않는다. 보통 힙과 스택 사이가 비어있는데, 이는 미사용 공간으로 처음부터 힙과 스택이 할당되어 있는게 아니라는 의미이다. 이들은 메모리 공간이 필요할 때 할당이 된다. 스택이라면 함수가 호출될 때, 힙이라면 동적으로..
쉘(Shell)이란? 사용자와 운영체제 사이에서 사용자로부터 명령어를 입력받아 이를 처리하는 명령어 처리기 역할을 하는 소프트웨어이다. 사용자가 입력한 명령어를 실행하기 위해 새로운 자식 프로세스들을 생성하여 각 자식 프로세스들이 한 명령어씩 실행하게 한다. 쉘의 실행 절차1. 시작파일을 읽고 실행한다.2. 프롬프트를 출력하고 사용자 명령을 기다린다.3. 사용자 명령을 실행한다.
1. 프로그램 실행 exec() 시스템 호출에 의해서 프로그램이 실행된다. 1. exec() 시스템 호출에 의해 실행이 시작된다.2. 프로그램 실행이 시작된다.3. C 시작 루틴부터 시작하며, 이 시작 루틴은 main() 함수를 호출하고 명령줄 인수와 환경 변수를 main() 함수로 옮겨준다.4. main() 함수를 반환하고 exit() 시스템 호출을 하여 종료한다. 명령줄 인수 명령어와 명령할 내용 등을 말한다. 환경변수 실행파일의 경로정보, 파일이름을 말한다. 내부적으로 환경변수는 쉘이 원래 가지고 있던 것을 전역변수 environ을 통해 환경 변수와 값의 리스트를 포인터 배열 형태로 쉘이 실행하는 프로그램에 넘겨준다. 2. 프로그램 종료크게 정상 종료와 비정상 종료로 나눈다. 1) 정상 종료 1. ..