1) To achieve this task you need to add an integer field to the knowledge base edit page that will store this amount of views. Then you need to add additional logic to Knowledge base edit page that will trigger incrementation of the integer field when method onEntityInitialized is initiated.
2) To achieve this task you need to add a system setting with integer data type that will be used to set a restriction number. Then you need to create a process that will sum "Created by" field of "Case" object (each time new case is created) and if the count of "Created by" is greater than the value of the system setting - the incident will be automatically "Canceled". The plus of this method is in fact that the client doesn't need to fill in entered data each time he tries to create new portal incident and you can simply reopen "Canceled" ticket.
And as for the first question you can also display "View" column that already present in knowledge base object and that shows the amount of views of the article.