1. 개요 • 스레드는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합, 스텍으로 구성된다. • 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 그리고 열린 파일이나 신호와 같은 운영체제 자원을 공유한다. • 각각의 스레드는 스텍, 레지스터 프로그램 카운터를 가진다. 2. 다중 스레드 프로그래밍 장점 • 응답성 : 하나의 쓰레드에서 응답을 처리하고 다른 스레드에서는 메인 코드를 처리하면 응답성이 증가한다. • 자원 공유 : 프로세스 끼리는 공유 메모리나 메시지 전달 기법을 사용해야하지만 같은 프로세스내 쓰레드는 자동적으로 프로세스의 자원을 공유한다. • 경제성 : 스레드는 자신이 속한 프로세스의 자원들을 공유하기 때문에 스레드를 생성하고 문맥을 교환..
1. 프로세스 생성 • 프로세스는 새로운 프로세스를 생성할 수 있다. 생성한 프로세스를 부모프로세스 생성당한 프로세스를 자식 프로세스라하며 프로세스들은 트리를 만들어 연결된다. • 운영체제는 프로세스를 pid에 의해 구분한다. pid 0에는 sched 프로세스가 있고 이 프로세스는 init, pageout, fsflush와 같은 프로세스들을 생성한다. • 프로세스가 서브프로세스를 생성할 때 서브프로세스는 운영체제로부터 직접 자원을 얻거나, 혹은 부모프로세스 자원의 부분 집합을 사용한다. • 부모 프로세스는 자원을 분할하여 자식들에게 나누어 주거나, 여러 자식들과 일부 자원을 공유할 수도 있다. • 부모 프로세스와 자식 프로세스는 병렬로 실행될 수 있으며 부모는 자식이 죽을 때까지 기다린다. • 자식 프로..
1. The Process • 프로세스란 실행 중인 프로그램이고 프로그램은 메모리에 저장되어 있는 파일이다. • 함수, 로컬 변수와 같은 것들은 프로세스 스텍에 저장된다. • 동적으로 할당된 것들은 힙 영역에 저장되며 상수는 텍스트 영역에 저장된다. 2. Process State • new : 프로세스가 생성 중인 상태이다. • ready : 프로세스가 처리기에 할당되기를 기다린다. • running : 명령어가 실행되고 있다. • waiting : 프로세스가 어떤 사건이 발생되기를 기다린다. • terminated : 프로세스의 실행이 종료되었다. 3. Process Control Block(PCB) 각 프로세스는 운영체제에서 프로세스 제어 블록에 의해 표현된다. 제어 블록이 가지는 것들은 다음과 같다..
1. 운영체제 설계 및 구현 - 설계 목표• User goals - 사용자들은 시스템이 몇몇 명백한 특성을 가지기를 원한다. 따라서 시스템은 사용하기 쉽고 편리하고, 배우기 쉽고, 믿을 수 있고, 안전하고, 신속해야한다. • Systems goals - 설계, 구현, 유지 보수가 쉬워야 하며, 적응성, 신뢰성, 무오류, 효율성을 가져야 한다. 2. 운영체제 설계 및 구현 - 메커니즘과 정책• Mechanism - 어떤 일을 어떻게 할것인가? • Policy - 무엇을 할것인가? • 타이머를 예로 들면 타이머의 수행하는 일은 CPU롤 보호하는 메커니즘이지만 타이머 설정에 대한 시간은 정책이다. • 정책은 장소나 시간의 흐름에 따라 변경될 수 있다. 정책의 변경으로 새로 설계를 하는 것이 아니라 파라메터를 ..
1.개요 예시를 이용한 컴파일의 4단계를 알아보자 2. 컴파일의 4단계 좁은 의미의 파일 과정은 다음 4단계 과정으로 나눌 수 있다.1. 구문 해석[어휘 해석(Lexical Analysis) + 구문 해석(Syntactic Analysis)] 2. 의미 해석(Semantic Analysis) 3. 중간 표현 생성(Create Intermediate code) 4. 코드 생성(Code Generation) 3. 예시int a, b; -> ① float c; -> ② a = b + c; -> ③ d= 2a + c; -> ④ iff() -> ⑤ c = b a -> ⑥ 4. 구문 해석 - 어휘 해석(Lexical Analysis) Token 생성 및 테이블 정의를 한다. 코드를 읽을 때 하나 하나 FSA에 넣어..
1. 개요 fopen과 open의 차이점을 알고 파일입출력을 해본다. 2. 규격화된 파일 입출력 - 원형 함수 : int fscanf( FILE *stream, const char *format [, argument].. ); - 리턴값 : 읽혀진 필드의 수. 파일 끝 또는 에러 시 EOF(-1). - 데이터 역시 규격화 되어 있어야 한다. 안 그러면 에러 - 출력은 fsacnf 대신 fprintf를 이용한다. - fprintf를는 기본 printf에 파라메터 FILE pointer를 추가한 것이다. 사용법도 printf와 같다. - 선별적 읽기(%*?)를 하여 데이터를 읽지 않고 줄수를 체크할 수 있다. - 기본예제 #include int main( ) { FILE *pFile = NULL; pFile..
1. 개요동적 할당으로 구조체의 배열을 생성한 후 기본 배열 읽기 방식인 [ i ]가 아닌 포인터로 배열을 읽고 써 본다. 2. 예제 소스 코드 #include typedef struct Student { char Name[10]; int Score; int Year; }Student; int main() { Student *Student_Arr, *temp_Arr; int Student_Num; FILE *fp; fp = fopen("data.txt", "r"); fscanf(fp, "%d", &Student_Num); Student_Arr = (Student *)malloc(sizeof(Student)*Student_Num); //Read Text File and Save Data in Array t..
1. strcpy - 원형 함수 : int strcpy(char * destination, char* source); - 스트링 복사 함수 - source의 데이터를 destination 자료구조에 저장한다. 2. strcmp - 원형 함수 : int strcmp(char * str1, char* str2); - 스트링 비교 함수 - 같으면 0, str1이 크면 1 작으면 -1이 리턴된다. 3. strcat - 원형 함수 : int strcat(char * destination, char* source); - 스트링 결합 함수 - destination의 데이터 뒤에 source의 데이터를 추가한다. 4. string.h의 함수들 - 문자열 복사 함수 ◾memcpy : 메모리의 특정한 블록을 복사한다. ◾..
1. 운영체제 서비스• 사용자 인터페이스 (User Interface) : 거의 모든 윤영체제는 UI를 가지고 있으며 CLI(Command Line Interface), GUI(Graphics User Interface), Back Interface가 있다. • 프로그램 실행(Program execution) : 시스템 프로그램을 메모리에 적재하여 실행할 수 있어야 한며 정상적이든 비정상이든 실행을 끝낼 수 있어야 한다. • 입출력 연산(I/O operation) : 수행 중인 프로그램은 입출력 요구를 할 수 있으며, 이러한 입출력에는 파일, 입출력 장치가 연관될 수 있다. • 파일 시스템 조작 (File-System manipulation) : 프로그램은 이름에 의하여 파일의 생성, 삭제, 검색, 정보..
1. I/O System• OS의 목적 중의 하나는 사용자에게 특정 하드웨어 장치의 특성을 숨기는 것이다. • UNIX의 경우 입출력 서브시스템(I/O Subsystem)에 의해 숨겨진다. • 입출력 시스템은 메모리 관리 구성 요소, 장치 드라이버 인터페이스, 하드웨어 장치의 드라이버로 구성된다. • 장치 드라이버만이 자신에게 지정된 특정 장치의 특성을 알고 있다. 2. Protection and Security• 보호(Protection)은 컴퓨터 시스템이 정의한 자원에 대한 프로그램, 프로세스, 또는 사용자들의 접근을 제어하는 것을 말한다. • 보안(Security)은 외부 또는 내부의 공격을 방어하는 것이다. • 보호와 오안을 제공하기 위해서는 시스템의 모든 사용자들을 구분할 수 있어야 한다. • ..
- Total
- Today
- Yesterday
- 자바 입출력
- 알고리즘
- Res
- 아두이노
- c언어
- 파일 입출력
- 유전 알고리즘
- 테라펀딩 #투게더펀딩 #P2P투자 #부동산 소액 투자 #카카오 #토스
- vim 설치
- java 파일 입출력
- android
- jad
- LISTVIEW
- php
- 포켓몬 Go
- Notification
- 카운터
- 파일입출력
- java url
- 5582
- 인텐트
- 서버
- vim
- 포켓몬 고
- Service
- java
- 유전
- Java Decompiler
- 안드로이드
- counter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |